This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new ffa63e0cb6f HDDS-13509. Have single constructor in
ContainerReplicaPendingOps and ContainerReplicaOp (#9118)
ffa63e0cb6f is described below
commit ffa63e0cb6f6303996c9481cecc9d48de67063a7
Author: GUAN-HAO HUANG <[email protected]>
AuthorDate: Tue Nov 11 21:16:04 2025 +0800
HDDS-13509. Have single constructor in ContainerReplicaPendingOps and
ContainerReplicaOp (#9118)
---
.../container/replication/ContainerReplicaOp.java | 28 +++++++-------
.../replication/ContainerReplicaPendingOps.java | 15 +++++---
.../replication/ECUnderReplicationHandler.java | 2 +-
.../QuasiClosedStuckUnderReplicationHandler.java | 7 +++-
.../hadoop/hdds/scm/block/TestBlockManager.java | 2 +-
.../scm/container/TestContainerReportHandler.java | 2 +-
.../scm/container/TestContainerStateManager.java | 2 +-
.../TestIncrementalContainerReportHandler.java | 2 +-
.../scm/container/balancer/TestMoveManager.java | 32 ++++++++--------
.../replication/TestECContainerReplicaCount.java | 32 ++++++++--------
.../replication/TestECMisReplicationHandler.java | 10 ++---
.../replication/TestECOverReplicationHandler.java | 4 +-
.../replication/TestECUnderReplicationHandler.java | 2 +-
...TestQuasiClosedStuckOverReplicationHandler.java | 9 ++++-
...estQuasiClosedStuckUnderReplicationHandler.java | 4 +-
.../TestRatisContainerReplicaCount.java | 8 ++--
.../TestRatisMisReplicationHandler.java | 10 ++---
.../TestRatisOverReplicationHandler.java | 12 +++---
.../TestRatisUnderReplicationHandler.java | 24 ++++++------
.../replication/TestReplicationManager.java | 12 ++++--
.../TestReplicationManagerScenarios.java | 2 +-
.../replication/TestReplicationManagerUtil.java | 24 ++++++------
.../health/TestDeletingContainerHandler.java | 16 ++++----
.../health/TestECMisReplicationCheckHandler.java | 8 ++--
.../health/TestECReplicationCheckHandler.java | 28 +++++++-------
.../TestQuasiClosedStuckReplicationCheck.java | 9 ++++-
.../health/TestRatisReplicationCheckHandler.java | 44 +++++++++++-----------
.../TestRatisUnhealthyReplicationCheckHandler.java | 16 ++++----
.../hdds/scm/node/TestContainerPlacement.java | 2 +-
.../hdds/scm/safemode/TestSCMSafeModeManager.java | 2 +-
.../scm/AbstractReconContainerManagerTest.java | 2 +-
31 files changed, 198 insertions(+), 174 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaOp.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaOp.java
index 2be951a1814..5ba113e0ebe 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaOp.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaOp.java
@@ -21,7 +21,9 @@
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
/**
- * Class to wrap details used to track pending replications.
+ * ContainerReplicaOp wraps the information needed to track a pending
+ * replication operation (ADD or DELETE) against a specific datanode.
+ * It uses a single constructor so all call sites follow the same code path.
*/
public class ContainerReplicaOp {
@@ -32,18 +34,16 @@ public class ContainerReplicaOp {
private final long deadlineEpochMillis;
private final long containerSize;
- public static ContainerReplicaOp create(PendingOpType opType,
- DatanodeDetails target, int replicaIndex) {
- return new ContainerReplicaOp(opType, target, replicaIndex, null,
- System.currentTimeMillis(), 0);
- }
-
- public ContainerReplicaOp(PendingOpType opType,
- DatanodeDetails target, int replicaIndex, SCMCommand<?> command,
- long deadlineEpochMillis) {
- this(opType, target, replicaIndex, command, deadlineEpochMillis, 0);
- }
-
+ /**
+ * Create a ContainerReplicaOp with all parameters.
+ *
+ * @param opType type of operation
+ * @param target target datanode
+ * @param replicaIndex replica index (zero for Ratis, > 0 for EC)
+ * @param command SCM command associated with the op (nullable)
+ * @param deadlineEpochMillis deadline in epoch milliseconds
+ * @param containerSize size of the container in bytes
+ */
public ContainerReplicaOp(PendingOpType opType,
DatanodeDetails target, int replicaIndex, SCMCommand<?> command,
long deadlineEpochMillis, long containerSize) {
@@ -80,7 +80,7 @@ public long getContainerSize() {
}
/**
- * Enum representing different types of pending Ops.
+ * Types of pending operations supported by ContainerReplicaOp.
*/
public enum PendingOpType {
ADD, DELETE
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaPendingOps.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaPendingOps.java
index 8b1766cd978..2905ae4d4a3 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaPendingOps.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ContainerReplicaPendingOps.java
@@ -64,14 +64,17 @@ public class ContainerReplicaPendingOps {
private final ConcurrentHashMap<DatanodeID, SizeAndTime>
containerSizeScheduled = new ConcurrentHashMap<>();
private ReplicationManager.ReplicationManagerConfiguration rmConf;
- public ContainerReplicaPendingOps(Clock clock) {
- this.clock = clock;
- resetCounters();
- }
-
+ /**
+ * Creates a ContainerReplicaPendingOps with all parameters.
+ * This is the single constructor that should be used for all cases.
+ *
+ * @param clock the clock to use for timing operations
+ * @param rmConf the replication manager configuration (can be null)
+ */
public ContainerReplicaPendingOps(Clock clock,
ReplicationManager.ReplicationManagerConfiguration rmConf) {
- this(clock);
+ this.clock = clock;
this.rmConf = rmConf;
+ resetCounters();
}
/**
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
index 158c802479f..5da31e9349a 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ECUnderReplicationHandler.java
@@ -621,7 +621,7 @@ private void adjustPendingOps(ECContainerReplicaCount
replicaCount,
DatanodeDetails target, int replicaIndex) {
replicaCount.addPendingOp(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.ADD, target, replicaIndex, null,
- Long.MAX_VALUE));
+ Long.MAX_VALUE, 0));
}
static ByteString integers2ByteString(List<Integer> src) {
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/QuasiClosedStuckUnderReplicationHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/QuasiClosedStuckUnderReplicationHandler.java
index 7730c330a1b..851378c481a 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/QuasiClosedStuckUnderReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/QuasiClosedStuckUnderReplicationHandler.java
@@ -108,9 +108,12 @@ public int processAndSendCommands(Set<ContainerReplica>
replicas, List<Container
.collect(Collectors.toList());
for (DatanodeDetails target : targets) {
try {
- replicationManager.sendThrottledReplicationCommand(containerInfo,
sourceDatanodes, target, 0);
+ replicationManager.sendThrottledReplicationCommand(
+ containerInfo, sourceDatanodes, target, 0);
// Add the pending op, so we exclude the node for subsequent origins
-
mutablePendingOps.add(ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD,
target, 0));
+ mutablePendingOps.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD, target, 0,
+ null, System.currentTimeMillis(), 0));
totalCommandsSent++;
} catch (CommandTargetOverloadedException e) {
LOG.warn("Cannot replicate container {} because all sources are
overloaded.", containerInfo);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java
index f7f605189d8..6a85a3dcf32 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java
@@ -153,7 +153,7 @@ void setUp(@TempDir File tempDir) throws Exception {
pipelineManager,
scmMetadataStore.getContainerTable(),
new ContainerReplicaPendingOps(
- Clock.system(ZoneId.systemDefault())));
+ Clock.system(ZoneId.systemDefault()), null));
SCMSafeModeManager safeModeManager = new SCMSafeModeManager(conf,
nodeManager, pipelineManager, containerManager, serviceManager,
eventQueue, scmContext);
SCMConfigurator configurator = new SCMConfigurator();
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
index 61001b9d38f..e4176e18b35 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
@@ -115,7 +115,7 @@ void setup() throws IOException,
InvalidStateTransitionException {
.setContainerStore(SCMDBDefinition.CONTAINERS.getTable(dbStore))
.setSCMDBTransactionBuffer(scmhaManager.getDBTransactionBuffer())
.setContainerReplicaPendingOps(new ContainerReplicaPendingOps(
- Clock.system(ZoneId.systemDefault())))
+ Clock.system(ZoneId.systemDefault()), null))
.build();
publisher = mock(EventPublisher.class);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
index 0f5b3b6adcd..422b29f1b5b 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
@@ -91,7 +91,7 @@ public void init() throws IOException, TimeoutException {
.setContainerStore(SCMDBDefinition.CONTAINERS.getTable(dbStore))
.setSCMDBTransactionBuffer(scmhaManager.getDBTransactionBuffer())
.setContainerReplicaPendingOps(new ContainerReplicaPendingOps(
- Clock.system(ZoneId.systemDefault())))
+ Clock.system(ZoneId.systemDefault()), null))
.build();
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
index d9ecaba4935..a87fdaec980 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
@@ -138,7 +138,7 @@ public void setup() throws IOException,
InvalidStateTransitionException,
.setContainerStore(SCMDBDefinition.CONTAINERS.getTable(dbStore))
.setSCMDBTransactionBuffer(scmhaManager.getDBTransactionBuffer())
.setContainerReplicaPendingOps(new ContainerReplicaPendingOps(
- Clock.system(ZoneId.systemDefault())))
+ Clock.system(ZoneId.systemDefault()), null))
.build();
this.publisher = mock(EventPublisher.class);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/balancer/TestMoveManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/balancer/TestMoveManager.java
index dc645ab0e8d..355aab13c41 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/balancer/TestMoveManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/balancer/TestMoveManager.java
@@ -201,13 +201,13 @@ public void testMovePendingOpsExist() throws Exception {
nodes.put(src, NodeStatus.inServiceHealthy());
nodes.put(tgt, NodeStatus.inServiceHealthy());
- pendingOps.add(new ContainerReplicaOp(ADD, tgt, 0, null, clock.millis()));
+ pendingOps.add(new ContainerReplicaOp(ADD, tgt, 0, null, clock.millis(),
0));
assertMoveFailsWith(REPLICATION_FAIL_INFLIGHT_REPLICATION,
containerInfo.containerID());
pendingOps.clear();
- pendingOps.add(new ContainerReplicaOp(DELETE, src, 0, null,
clock.millis()));
+ pendingOps.add(new ContainerReplicaOp(DELETE, src, 0, null,
clock.millis(), 0));
assertMoveFailsWith(REPLICATION_FAIL_INFLIGHT_DELETION,
containerInfo.containerID());
}
@@ -327,7 +327,7 @@ public void testDeleteCommandFails() throws Exception {
.when(containerManager).getContainer(any(ContainerID.class));
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult moveResult = res.get();
@@ -339,14 +339,14 @@ public void testSuccessfulMove() throws Exception {
CompletableFuture<MoveManager.MoveResult> res = setupSuccessfulMove();
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
verify(replicationManager).sendDeleteCommand(
eq(containerInfo), eq(0), eq(src), eq(true), anyLong());
op = new ContainerReplicaOp(
- DELETE, src, 0, null, clock.millis() + 1000);
+ DELETE, src, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
@@ -376,7 +376,7 @@ public void testSuccessfulMoveNonZeroRepIndex() throws
Exception {
anyLong());
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, srcReplica.getReplicaIndex(), null, clock.millis() + 1000);
+ ADD, tgt, srcReplica.getReplicaIndex(), null, clock.millis() + 1000,
0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
verify(replicationManager).sendDeleteCommand(
@@ -384,7 +384,7 @@ public void testSuccessfulMoveNonZeroRepIndex() throws
Exception {
eq(true), anyLong());
op = new ContainerReplicaOp(
- DELETE, src, srcReplica.getReplicaIndex(), null, clock.millis() +
1000);
+ DELETE, src, srcReplica.getReplicaIndex(), null, clock.millis() +
1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
@@ -396,7 +396,7 @@ public void testMoveTimeoutOnAdd() throws Exception {
CompletableFuture<MoveManager.MoveResult> res = setupSuccessfulMove();
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), true);
MoveManager.MoveResult finalResult = res.get();
@@ -408,14 +408,14 @@ public void testMoveTimeoutOnDelete() throws Exception {
CompletableFuture<MoveManager.MoveResult> res = setupSuccessfulMove();
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
verify(replicationManager).sendDeleteCommand(
eq(containerInfo), eq(0), eq(src), eq(true), anyLong());
op = new ContainerReplicaOp(
- DELETE, src, 0, null, clock.millis() + 1000);
+ DELETE, src, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), true);
MoveManager.MoveResult finalResult = res.get();
@@ -436,7 +436,7 @@ public void testMoveCompleteSrcNoLongerPresent() throws
Exception {
}
}
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
@@ -452,7 +452,7 @@ public void testMoveCompleteSrcNotHealthy() throws
Exception {
nodes.put(src, NodeStatus.inServiceStale());
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
@@ -470,7 +470,7 @@ public void testMoveCompleteSrcNotInService() throws
Exception {
HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
@@ -489,7 +489,7 @@ public void testMoveCompleteFutureReplicasUnhealthy()
throws Exception {
.MisReplicatedHealthResult(containerInfo, false, null));
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, 0, null, clock.millis() + 1000);
+ ADD, tgt, 0, null, clock.millis() + 1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
@@ -525,7 +525,7 @@ public void testDeleteNotSentWithExpirationTimeInPast()
throws Exception {
eq(tgt), longCaptorReplicate.capture());
ContainerReplicaOp op = new ContainerReplicaOp(
- ADD, tgt, srcReplica.getReplicaIndex(), null, clock.millis() + 1000);
+ ADD, tgt, srcReplica.getReplicaIndex(), null, clock.millis() + 1000,
0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
ArgumentCaptor<Long> longCaptorDelete =
ArgumentCaptor.forClass(Long.class);
verify(replicationManager).sendDeleteCommand(
@@ -541,7 +541,7 @@ public void testDeleteNotSentWithExpirationTimeInPast()
throws Exception {
assertTrue((longCaptorDelete.getValue() -
Duration.ofMinutes(6).toMillis()) > clock.millis());
op = new ContainerReplicaOp(
- DELETE, src, srcReplica.getReplicaIndex(), null, clock.millis() +
1000);
+ DELETE, src, srcReplica.getReplicaIndex(), null, clock.millis() +
1000, 0);
moveManager.opCompleted(op, containerInfo.containerID(), false);
MoveManager.MoveResult finalResult = res.get();
assertEquals(COMPLETED, finalResult);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECContainerReplicaCount.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECContainerReplicaCount.java
index b80fe5cfc87..bb31e9cb8e1 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECContainerReplicaCount.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECContainerReplicaCount.java
@@ -92,7 +92,7 @@ public void testContainerMissingReplica() {
// appears missing
ContainerReplicaOp op = new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 5, null, Long.MAX_VALUE);
+ MockDatanodeDetails.randomDatanodeDetails(), 5, null, Long.MAX_VALUE,
0);
rcnt.addPendingOp(op);
assertTrue(rcnt.isSufficientlyReplicated(true));
assertEquals(0, rcnt.unavailableIndexes(true).size());
@@ -213,7 +213,7 @@ public void testOverReplicatedContainer() {
// as not over replicated.
rcnt.addPendingOp(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), 2, null, Long.MAX_VALUE));
+ MockDatanodeDetails.randomDatanodeDetails(), 2, null, Long.MAX_VALUE,
0));
assertFalse(rcnt.isOverReplicated(true));
}
@@ -227,9 +227,9 @@ public void
testOverReplicatedContainerFixedWithPendingDelete() {
List<ContainerReplicaOp> pending =
getContainerReplicaOps(ImmutableList.of(), ImmutableList.of(1));
- pending.add(ContainerReplicaOp
- .create(ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), 2));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(), 2, null, Long.MAX_VALUE,
0));
ECContainerReplicaCount rcnt =
new ECContainerReplicaCount(container, replica, pending, 1);
@@ -529,15 +529,17 @@ private List<ContainerReplicaOp> getContainerReplicaOps(
List<Integer> addIndexes, List<Integer> deleteIndexes) {
List<ContainerReplicaOp> pending = new ArrayList<>();
for (Integer addIndex : addIndexes) {
- pending.add(ContainerReplicaOp
- .create(ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), addIndex));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD,
+ MockDatanodeDetails.randomDatanodeDetails(), addIndex,
+ null, Long.MAX_VALUE, 0));
}
for (Integer deleteIndex : deleteIndexes) {
- pending.add(ContainerReplicaOp
- .create(ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), deleteIndex));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(), deleteIndex,
+ null, Long.MAX_VALUE, 0));
}
return pending;
}
@@ -711,19 +713,19 @@ public void
testSufficientlyReplicatedWithUnhealthyAndPendingDelete() {
replica.add(unhealthyReplica);
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
- pendingOps.add(ContainerReplicaOp.create(
+ pendingOps.add(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.DELETE,
unhealthyReplica.getDatanodeDetails(),
- unhealthyReplica.getReplicaIndex()));
+ unhealthyReplica.getReplicaIndex(), null, System.currentTimeMillis(),
0));
ECContainerReplicaCount rcnt =
new ECContainerReplicaCount(container, replica, pendingOps, 1);
assertTrue(rcnt.isSufficientlyReplicated(false));
// Add another pending delete to an index that is not an unhealthy index
- pendingOps.add(ContainerReplicaOp.create(
+ pendingOps.add(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), 2));
+ MockDatanodeDetails.randomDatanodeDetails(), 2, null,
System.currentTimeMillis(), 0));
rcnt = new ECContainerReplicaCount(container, replica, pendingOps, 1);
assertFalse(rcnt.isSufficientlyReplicated(false));
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECMisReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECMisReplicationHandler.java
index 363097ce400..eb45e3fc9d6 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECMisReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECMisReplicationHandler.java
@@ -161,13 +161,13 @@ public void testMisReplicationWithPendingOps()
when(placementPolicy.validateContainerPlacement(anyList(),
anyInt())).thenReturn(mockedContainerPlacementStatus);
List<ContainerReplicaOp> pendingOp = singletonList(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 1));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.ADD,
+ MockDatanodeDetails.randomDatanodeDetails(), 1, null,
Long.MAX_VALUE, 0));
testMisReplication(availableReplicas, placementPolicy,
pendingOp, 0, 1, 0);
- pendingOp = singletonList(ContainerReplicaOp
- .create(ContainerReplicaOp.PendingOpType.DELETE, availableReplicas
- .stream().findAny().get().getDatanodeDetails(), 1));
+ pendingOp = singletonList(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE, availableReplicas
+ .stream().findAny().get().getDatanodeDetails(), 1, null,
Long.MAX_VALUE, 0));
testMisReplication(availableReplicas, placementPolicy,
pendingOp, 0, 1, 0);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECOverReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECOverReplicationHandler.java
index 2fc978794de..533ac898392 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECOverReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECOverReplicationHandler.java
@@ -136,8 +136,8 @@ public void testOverReplicationFixedByPendingDelete()
ContainerReplicaProto.State.CLOSED);
availableReplicas.add(excess);
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
- pendingOps.add(ContainerReplicaOp.create(DELETE,
- excess.getDatanodeDetails(), 5));
+ pendingOps.add(new ContainerReplicaOp(DELETE,
+ excess.getDatanodeDetails(), 5, null, Long.MAX_VALUE, 0));
testOverReplicationWithIndexes(availableReplicas, Collections.emptyMap(),
pendingOps);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
index 5de354fb2de..5d2af561196 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
@@ -1073,7 +1073,7 @@ public void
testDatanodesPendingAddAreNotSelectedAsTargets()
Set<ContainerReplica> availableReplicas = createReplicas(3);
DatanodeDetails dn = MockDatanodeDetails.randomDatanodeDetails();
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD, dn,
4));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.ADD, dn, 4,
null, System.currentTimeMillis(), 0));
/*
Mock the placement policy. If the list of nodes to be excluded does not
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckOverReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckOverReplicationHandler.java
index ba7de78c5e3..67d1fe09371 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckOverReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckOverReplicationHandler.java
@@ -118,8 +118,13 @@ public void testNoCommandsScheduledIfPendingOps() throws
IOException {
Pair.of(origin2, HddsProtos.NodeOperationalState.IN_SERVICE),
Pair.of(origin2, HddsProtos.NodeOperationalState.IN_SERVICE));
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
- pendingOps.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.DELETE,
MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pendingOps.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(),
+ 0,
+ null,
+ Long.MAX_VALUE,
+ 0));
int count = handler.processAndSendCommands(replicas, pendingOps,
getOverReplicatedHealthResult(), 1);
assertEquals(0, count);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckUnderReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckUnderReplicationHandler.java
index 20731c948ad..ff7853f8c8d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckUnderReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestQuasiClosedStuckUnderReplicationHandler.java
@@ -132,8 +132,8 @@ public void testNoCommandsScheduledIfPendingOps() throws
IOException {
Pair.of(origin, HddsProtos.NodeOperationalState.IN_SERVICE),
Pair.of(origin, HddsProtos.NodeOperationalState.IN_SERVICE));
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
- pendingOps.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.ADD,
MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pendingOps.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD,
MockDatanodeDetails.randomDatanodeDetails(), 0, null, Long.MAX_VALUE, 0));
int count = handler.processAndSendCommands(replicas, pendingOps,
getUnderReplicatedHealthResult(), 1);
assertEquals(0, count);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisContainerReplicaCount.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisContainerReplicaCount.java
index 70116ef3ccf..3d3418b7f5b 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisContainerReplicaCount.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisContainerReplicaCount.java
@@ -568,8 +568,8 @@ void
testSufficientReplicationWithPendingDeleteOnUnhealthyReplica() {
replicas.add(unhealthyReplica);
List<ContainerReplicaOp> ops = new ArrayList<>();
- ops.add(ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- unhealthyReplica.getDatanodeDetails(), 0));
+ ops.add(new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ unhealthyReplica.getDatanodeDetails(), 0, null,
System.currentTimeMillis(), 0));
RatisContainerReplicaCount withoutUnhealthy =
new RatisContainerReplicaCount(container, replicas, ops, 2, false);
validate(withoutUnhealthy, true, 0, false, false);
@@ -656,8 +656,8 @@ void testSafelyOverReplicated() {
createReplicas(container.containerID(), UNHEALTHY, 0, 0);
replicas.addAll(unhealthyReplicas);
List<ContainerReplicaOp> ops = new ArrayList<>();
- ops.add(ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- unhealthyReplicas.iterator().next().getDatanodeDetails(), 0));
+ ops.add(new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ unhealthyReplicas.iterator().next().getDatanodeDetails(), 0, null,
System.currentTimeMillis(), 0));
RatisContainerReplicaCount withoutUnhealthy =
new RatisContainerReplicaCount(container, replicas, ops, 2, false);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisMisReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisMisReplicationHandler.java
index 88889da0b26..29b2492475b 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisMisReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisMisReplicationHandler.java
@@ -162,13 +162,13 @@ public void testMisReplicationWithPendingOps()
when(placementPolicy.validateContainerPlacement(anyList(),
anyInt())).thenReturn(mockedContainerPlacementStatus);
List<ContainerReplicaOp> pendingOp = Collections.singletonList(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.ADD,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
testMisReplication(availableReplicas, placementPolicy,
pendingOp, 0, 1, 0);
- pendingOp = Collections.singletonList(ContainerReplicaOp
- .create(ContainerReplicaOp.PendingOpType.DELETE, availableReplicas
- .stream().findAny().get().getDatanodeDetails(), 0));
+ pendingOp = Collections.singletonList(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE, availableReplicas
+ .stream().findAny().get().getDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
testMisReplication(availableReplicas, placementPolicy,
pendingOp, 0, 1, 0);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisOverReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisOverReplicationHandler.java
index 6c4fcd248ee..84dabae7686 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisOverReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisOverReplicationHandler.java
@@ -113,8 +113,8 @@ public void testOverReplicatedClosedContainer() throws
IOException {
Set<ContainerReplica> replicas = createReplicas(container.containerID(),
ContainerReplicaProto.State.CLOSED, 0, 0, 0, 0, 0);
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
// 1 replica is already pending delete, so only 1 new command should be
// created
@@ -220,8 +220,8 @@ public void
testClosedOverReplicatedWithAllUnhealthyReplicas()
Set<ContainerReplica> replicas = createReplicas(container.containerID(),
State.UNHEALTHY, 0, 0, 0, 0, 0);
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
// 1 replica is already pending delete, so only 1 new command should be
// created
@@ -409,8 +409,8 @@ public void testPerfectlyReplicatedContainer() throws
IOException {
replicas = createReplicas(container.containerID(),
ContainerReplicaProto.State.CLOSED, 0, 0, 0, 0);
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
testProcessing(replicas, pendingOps, getOverReplicatedHealthResult(), 0);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisUnderReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisUnderReplicationHandler.java
index dd2f9fd51d0..f10fff8695b 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisUnderReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestRatisUnderReplicationHandler.java
@@ -139,8 +139,8 @@ public void
testUnderReplicatedWithMissingReplicasAndPendingAdd()
Set<ContainerReplica> replicas
= createReplicas(container.containerID(), State.CLOSED, 0);
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.ADD,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
testProcessing(replicas, pendingOps, getUnderReplicatedHealthResult(), 2,
1);
@@ -166,8 +166,8 @@ public void testUnderReplicatedFixedByPendingAdd() throws
IOException {
Set<ContainerReplica> replicas
= createReplicas(container.containerID(), State.CLOSED, 0, 0);
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.ADD,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
testProcessing(replicas, pendingOps, getUnderReplicatedHealthResult(), 2,
0);
@@ -338,8 +338,8 @@ public void
testNoTargetsFoundBecauseOfPlacementPolicyPendingDelete() {
replicas.add(shouldDelete);
List<ContainerReplicaOp> pending = Collections.singletonList(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- shouldDelete.getDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ shouldDelete.getDatanodeDetails(), 0, null,
System.currentTimeMillis(), 0));
assertThrows(IOException.class,
() -> handler.processAndSendCommands(replicas,
@@ -389,8 +389,8 @@ public void
testUnhealthyReplicasAreReplicatedWhenHealthyAreUnavailable()
Set<ContainerReplica> replicas
= createReplicas(container.containerID(), State.UNHEALTHY, 0);
List<ContainerReplicaOp> pendingOps = ImmutableList.of(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.ADD,
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
System.currentTimeMillis(), 0));
testProcessing(replicas, pendingOps, getUnderReplicatedHealthResult(), 2,
1);
@@ -504,10 +504,10 @@ public void testCorrectUsedAndExcludedNodesPassed()
throws IOException {
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
DatanodeDetails pendingAdd = MockDatanodeDetails.randomDatanodeDetails();
DatanodeDetails pendingRemove =
MockDatanodeDetails.randomDatanodeDetails();
- pendingOps.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0));
- pendingOps.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.DELETE, pendingRemove, 0));
+ pendingOps.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0, null,
System.currentTimeMillis(), 0));
+ pendingOps.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE, pendingRemove, 0, null,
System.currentTimeMillis(), 0));
handler.processAndSendCommands(replicas, pendingOps,
getUnderReplicatedHealthResult(), 2);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
index 204953a6033..5889ca11efe 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
@@ -159,7 +159,7 @@ public void setup() throws IOException {
clock = new TestClock(Instant.now(), ZoneId.systemDefault());
containerReplicaPendingOps =
- new ContainerReplicaPendingOps(clock);
+ new ContainerReplicaPendingOps(clock, null);
when(containerManager
.getContainerReplicas(any(ContainerID.class))).thenAnswer(
@@ -1635,9 +1635,15 @@ public void testPendingOpExpiry() throws
ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
DatanodeDetails dn2 = MockDatanodeDetails.randomDatanodeDetails();
- ContainerReplicaOp addOp =
ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.ADD, dn1, 1);
+ ContainerReplicaOp addOp = new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD,
+ dn1,
+ 1,
+ null,
+ Long.MAX_VALUE,
+ 0);
ContainerReplicaOp delOp = new ContainerReplicaOp(
- ContainerReplicaOp.PendingOpType.DELETE, dn2, 1, command,
commandDeadline);
+ ContainerReplicaOp.PendingOpType.DELETE, dn2, 1, command,
commandDeadline, 0);
replicationManager.opCompleted(addOp, ContainerID.valueOf(1L), false);
replicationManager.opCompleted(delOp, ContainerID.valueOf(1L), false);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerScenarios.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerScenarios.java
index d7d57287077..7baebb2c885 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerScenarios.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerScenarios.java
@@ -183,7 +183,7 @@ public void setup() throws IOException,
NodeNotFoundException {
}).when(nodeManager).addDatanodeCommand(any(), any());
clock = new TestClock(Instant.now(), ZoneId.systemDefault());
- containerReplicaPendingOps = new ContainerReplicaPendingOps(clock);
+ containerReplicaPendingOps = new ContainerReplicaPendingOps(clock, null);
when(containerManager.getContainerReplicas(any(ContainerID.class))).thenAnswer(
invocation -> {
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerUtil.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerUtil.java
index a3573dc2e47..d5c465aa238 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerUtil.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManagerUtil.java
@@ -114,10 +114,10 @@ public void testGetExcludedAndUsedNodes() throws
NodeNotFoundException {
DatanodeDetails pendingAdd = MockDatanodeDetails.randomDatanodeDetails();
DatanodeDetails pendingDelete =
MockDatanodeDetails.randomDatanodeDetails();
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0));
- pending.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.DELETE, pendingDelete, 0));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE, pendingDelete, 0, null,
Long.MAX_VALUE, 0));
when(replicationManager.getNodeStatus(any())).thenAnswer(
invocation -> {
@@ -203,10 +203,10 @@ public void
testGetUsedAndExcludedNodesForQuasiClosedContainer() throws NodeNotF
DatanodeDetails pendingAdd = MockDatanodeDetails.randomDatanodeDetails();
DatanodeDetails pendingDelete =
MockDatanodeDetails.randomDatanodeDetails();
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0));
- pending.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.DELETE, pendingDelete, 0));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE, pendingDelete, 0, null,
Long.MAX_VALUE, 0));
when(replicationManager.getNodeStatus(any())).thenAnswer(
invocation -> {
@@ -286,10 +286,10 @@ public void
testDatanodesWithInSufficientDiskSpaceAreExcluded() throws NodeNotFo
DatanodeDetails pendingAdd = MockDatanodeDetails.randomDatanodeDetails();
DatanodeDetails pendingDelete =
MockDatanodeDetails.randomDatanodeDetails();
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0));
- pending.add(ContainerReplicaOp.create(
- ContainerReplicaOp.PendingOpType.DELETE, pendingDelete, 0));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.ADD, pendingAdd, 0, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ ContainerReplicaOp.PendingOpType.DELETE, pendingDelete, 0, null,
Long.MAX_VALUE, 0));
// set up mocks such ContainerReplicaPendingOps returns the
containerSizeScheduled map
ReplicationManagerConfiguration rmConf = new
ReplicationManagerConfiguration();
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestDeletingContainerHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestDeletingContainerHandler.java
index 9a3a12c73de..38cb42a494f 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestDeletingContainerHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestDeletingContainerHandler.java
@@ -174,8 +174,8 @@ public void testNoNeedResendDeleteCommand() throws
NotLeaderException {
ContainerReplicaProto.State.CLOSED, 0, 0, 0);
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
containerReplicas.forEach(r -> pendingOps.add(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- r.getDatanodeDetails(), r.getReplicaIndex())));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ r.getDatanodeDetails(), r.getReplicaIndex(), null, Long.MAX_VALUE,
0)));
verifyDeleteCommandCount(containerInfo, containerReplicas, pendingOps, 0);
//EC container
@@ -186,8 +186,8 @@ public void testNoNeedResendDeleteCommand() throws
NotLeaderException {
ContainerReplicaProto.State.CLOSED, 1, 2, 3, 4, 5);
pendingOps.clear();
containerReplicas.forEach(r -> pendingOps.add(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- r.getDatanodeDetails(), r.getReplicaIndex())));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ r.getDatanodeDetails(), r.getReplicaIndex(), null, Long.MAX_VALUE,
0)));
verifyDeleteCommandCount(containerInfo, containerReplicas, pendingOps, 0);
}
@@ -207,8 +207,8 @@ public void testResendDeleteCommand() throws
NotLeaderException {
ContainerReplicaProto.State.CLOSED, 0, 0, 0);
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
containerReplicas.stream().limit(2).forEach(replica -> pendingOps.add(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- replica.getDatanodeDetails(), replica.getReplicaIndex())));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ replica.getDatanodeDetails(), replica.getReplicaIndex(), null,
Long.MAX_VALUE, 0)));
verifyDeleteCommandCount(containerInfo, containerReplicas, pendingOps, 1);
//EC container
@@ -219,8 +219,8 @@ public void testResendDeleteCommand() throws
NotLeaderException {
ContainerReplicaProto.State.CLOSED, 1, 2, 3, 4, 5);
pendingOps.clear();
containerReplicas.stream().limit(3).forEach(replica -> pendingOps.add(
- ContainerReplicaOp.create(ContainerReplicaOp.PendingOpType.DELETE,
- replica.getDatanodeDetails(), replica.getReplicaIndex())));
+ new ContainerReplicaOp(ContainerReplicaOp.PendingOpType.DELETE,
+ replica.getDatanodeDetails(), replica.getReplicaIndex(), null,
Long.MAX_VALUE, 0)));
//since one delete command is end when testing ratis container, so
//here should be 1+2 = 3 times
verifyDeleteCommandCount(containerInfo, containerReplicas, pendingOps, 3);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECMisReplicationCheckHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECMisReplicationCheckHandler.java
index 935f370ae50..43e03b3383d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECMisReplicationCheckHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECMisReplicationCheckHandler.java
@@ -172,8 +172,8 @@ public void
shouldReturnFalseForMisReplicatedContainerFixedByPending() {
});
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 1));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 1, null,
Long.MAX_VALUE, 0));
Set<ContainerReplica> replicas = createReplicas(container.containerID(),
Pair.of(IN_SERVICE, 1), Pair.of(IN_SERVICE, 2),
@@ -229,8 +229,8 @@ public void testMisReplicationWithUnhealthyReplica() {
State.UNHEALTHY);
replicas.add(unhealthyReplica);
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- DELETE, unhealthyReplica.getDatanodeDetails(), 1));
+ pending.add(new ContainerReplicaOp(
+ DELETE, unhealthyReplica.getDatanodeDetails(), 1, null,
Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECReplicationCheckHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECReplicationCheckHandler.java
index e4ec24f053a..d3f9eb0891c 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECReplicationCheckHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestECReplicationCheckHandler.java
@@ -139,8 +139,8 @@ public void testUnderReplicatedContainerFixedWithPending() {
Set<ContainerReplica> replicas
= createReplicas(container.containerID(), 1, 2, 4, 5);
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 3));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 3, null,
Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
.setContainerInfo(container)
@@ -197,8 +197,8 @@ public void
testUnderReplicatedDueToOutOfServiceFixedWithPending() {
Pair.of(IN_SERVICE, 3), Pair.of(DECOMMISSIONING, 4),
Pair.of(IN_SERVICE, 4), Pair.of(DECOMMISSIONED, 5));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 5));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 5, null,
Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
.setContainerInfo(container)
@@ -228,8 +228,8 @@ public void
testUnderReplicatedDueToOutOfServiceAndMissingReplica() {
Pair.of(IN_SERVICE, 1), Pair.of(IN_SERVICE, 2),
Pair.of(DECOMMISSIONING, 4), Pair.of(DECOMMISSIONED, 5));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 3));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 3, null,
Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
@@ -369,8 +369,8 @@ private void
testUnderReplicatedAndUnrecoverableWithOfflinePending(
Set<ContainerReplica> replicas = createReplicas(container.containerID(),
Pair.of(IN_SERVICE, 1), Pair.of(offlineState, 2));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 2));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 2, null,
Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
.setContainerInfo(container)
@@ -508,10 +508,10 @@ public void testOverReplicatedContainerFixedByPending() {
Pair.of(IN_SERVICE, 1), Pair.of(IN_SERVICE, 2));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- DELETE, MockDatanodeDetails.randomDatanodeDetails(), 1));
- pending.add(ContainerReplicaOp.create(
- DELETE, MockDatanodeDetails.randomDatanodeDetails(), 2));
+ pending.add(new ContainerReplicaOp(
+ DELETE, MockDatanodeDetails.randomDatanodeDetails(), 1, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ DELETE, MockDatanodeDetails.randomDatanodeDetails(), 2, null,
Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
.setContainerInfo(container)
@@ -665,9 +665,9 @@ public void
testUnhealthyReplicaWithOtherCopyAndPendingDelete() {
replicas.add(unhealthyReplica);
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
- pendingOps.add(ContainerReplicaOp.create(DELETE,
+ pendingOps.add(new ContainerReplicaOp(DELETE,
unhealthyReplica.getDatanodeDetails(),
- unhealthyReplica.getReplicaIndex()));
+ unhealthyReplica.getReplicaIndex(), null, Long.MAX_VALUE, 0));
ContainerCheckRequest request = requestBuilder
.setContainerReplicas(replicas)
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestQuasiClosedStuckReplicationCheck.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestQuasiClosedStuckReplicationCheck.java
index 3e0adbf70d3..74faf643196 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestQuasiClosedStuckReplicationCheck.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestQuasiClosedStuckReplicationCheck.java
@@ -214,7 +214,7 @@ public void testUnderReplicatedWithPendingAddIsNotQueued() {
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
pendingOps.add(new ContainerReplicaOp(
- ContainerReplicaOp.PendingOpType.ADD,
MockDatanodeDetails.randomDatanodeDetails(), 0, null, Long.MAX_VALUE));
+ ContainerReplicaOp.PendingOpType.ADD,
MockDatanodeDetails.randomDatanodeDetails(), 0, null, Long.MAX_VALUE, 0));
ContainerCheckRequest request = new ContainerCheckRequest.Builder()
.setPendingOps(Collections.emptyList())
@@ -271,7 +271,12 @@ public void
testOverReplicatedWithPendingDeleteIsNotQueued() {
List<ContainerReplicaOp> pendingOps = new ArrayList<>();
pendingOps.add(new ContainerReplicaOp(
- ContainerReplicaOp.PendingOpType.DELETE,
MockDatanodeDetails.randomDatanodeDetails(), 0, null, Long.MAX_VALUE));
+ ContainerReplicaOp.PendingOpType.DELETE,
+ MockDatanodeDetails.randomDatanodeDetails(),
+ 0,
+ null,
+ Long.MAX_VALUE,
+ 0));
ContainerCheckRequest request = new ContainerCheckRequest.Builder()
.setPendingOps(Collections.emptyList())
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisReplicationCheckHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisReplicationCheckHandler.java
index 59bdc87d369..8e8291814b3 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisReplicationCheckHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisReplicationCheckHandler.java
@@ -167,8 +167,8 @@ public void
testUnderReplicatedContainerDueToPendingDelete() {
Set<ContainerReplica> replicas
= createReplicas(container.containerID(), 0, 0, 0);
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
.setPendingOps(pending);
@@ -192,8 +192,8 @@ public void testUnderReplicatedContainerFixedWithPending() {
Set<ContainerReplica> replicas
= createReplicas(container.containerID(), 0, 0);
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setPendingOps(pending)
.setContainerInfo(container);
@@ -275,8 +275,8 @@ public void
testUnderReplicatedDueToOutOfServiceFixedWithPending() {
Pair.of(IN_SERVICE, 0), Pair.of(IN_SERVICE, 0),
Pair.of(DECOMMISSIONED, 0));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setPendingOps(pending)
@@ -303,8 +303,8 @@ public void
testUnderReplicatedDueToOutOfServiceAndMissing() {
Set<ContainerReplica> replicas = createReplicas(container.containerID(),
Pair.of(IN_SERVICE, 0), Pair.of(DECOMMISSIONED, 0));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setPendingOps(pending)
@@ -453,10 +453,10 @@ public void testOverReplicatedContainer() {
Pair.of(IN_SERVICE, 0), Pair.of(IN_SERVICE, 0));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0));
- pending.add(ContainerReplicaOp.create(
- DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setPendingOps(pending)
@@ -667,8 +667,8 @@ public void testOverReplicatedContainerFixedByPending() {
Pair.of(IN_SERVICE, 0), Pair.of(IN_SERVICE, 0));
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ DELETE, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setPendingOps(pending)
@@ -825,10 +825,10 @@ public void
testUnderReplicatedWithMisReplicationFixedByPending() {
= createReplicas(container.containerID(), 0, 0);
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
@@ -896,10 +896,10 @@ public void testMisReplicatedFixedByPending() {
= createReplicas(container.containerID(), 0, 0, 0);
List<ContainerReplicaOp> pending = new ArrayList<>();
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
- pending.add(ContainerReplicaOp.create(
- ADD, MockDatanodeDetails.randomDatanodeDetails(), 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
+ pending.add(new ContainerReplicaOp(
+ ADD, MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
index 1499b43f69c..08a4c68375a 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
@@ -167,9 +167,9 @@ public void
shouldReturnTrueForUnderReplicatedUnhealthyReplicas() {
= createReplicas(container.containerID(),
ContainerReplicaProto.State.UNHEALTHY, 0);
List<ContainerReplicaOp> pendingOps =
- ImmutableList.of(ContainerReplicaOp.create(
+ ImmutableList.of(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
.setPendingOps(pendingOps);
@@ -201,9 +201,9 @@ public void testUnderReplicatedFixedByPendingAdd() {
= createReplicas(container.containerID(),
ContainerReplicaProto.State.UNHEALTHY, 0, 0);
List<ContainerReplicaOp> pendingOps =
- ImmutableList.of(ContainerReplicaOp.create(
+ ImmutableList.of(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.ADD,
- MockDatanodeDetails.randomDatanodeDetails(), 0));
+ MockDatanodeDetails.randomDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
.setPendingOps(pendingOps);
@@ -235,9 +235,9 @@ public void testUnderReplicatedDueToPendingDelete() {
= createReplicas(container.containerID(),
ContainerReplicaProto.State.UNHEALTHY, 0, 0, 0);
List<ContainerReplicaOp> pendingOps =
- ImmutableList.of(ContainerReplicaOp.create(
+ ImmutableList.of(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.DELETE,
- replicas.stream().findFirst().get().getDatanodeDetails(), 0));
+ replicas.stream().findFirst().get().getDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
.setPendingOps(pendingOps);
@@ -297,9 +297,9 @@ public void testOverReplicationFixedByPendingDelete() {
= createReplicas(container.containerID(),
ContainerReplicaProto.State.UNHEALTHY, 0, 0, 0, 0);
List<ContainerReplicaOp> pendingOps =
- ImmutableList.of(ContainerReplicaOp.create(
+ ImmutableList.of(new ContainerReplicaOp(
ContainerReplicaOp.PendingOpType.DELETE,
- replicas.stream().findFirst().get().getDatanodeDetails(), 0));
+ replicas.stream().findFirst().get().getDatanodeDetails(), 0, null,
Long.MAX_VALUE, 0));
requestBuilder.setContainerReplicas(replicas)
.setContainerInfo(container)
.setPendingOps(pendingOps);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
index d94c54e826e..90301d6fccd 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestContainerPlacement.java
@@ -158,7 +158,7 @@ ContainerManager createContainerManager()
scmhaManager, sequenceIdGen, pipelineManager,
SCMDBDefinition.CONTAINERS.getTable(dbStore),
new ContainerReplicaPendingOps(
- Clock.system(ZoneId.systemDefault())));
+ Clock.system(ZoneId.systemDefault()), null));
}
/**
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
index 405a3de340a..1cbd6bc3725 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java
@@ -549,7 +549,7 @@ public void testContainerSafeModeRuleEC(int data, int
parity) throws Exception {
ContainerManager containerManager = new ContainerManagerImpl(config,
SCMHAManagerStub.getInstance(true), null, pipelineManager,
scmMetadataStore.getContainerTable(),
- new ContainerReplicaPendingOps(Clock.system(ZoneId.systemDefault())));
+ new ContainerReplicaPendingOps(Clock.system(ZoneId.systemDefault()),
null));
scmSafeModeManager = new SCMSafeModeManager(config, nodeManager,
pipelineManager,
containerManager, serviceManager, queue, scmContext);
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
index 2490d351ee0..33e20413bfd 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/scm/AbstractReconContainerManagerTest.java
@@ -104,7 +104,7 @@ public void setUp(@TempDir File tempDir) throws Exception {
scmhaManager,
scmContext);
ContainerReplicaPendingOps pendingOps = new ContainerReplicaPendingOps(
- Clock.system(ZoneId.systemDefault()));
+ Clock.system(ZoneId.systemDefault()), null);
containerManager = new ReconContainerManager(
conf,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]