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 b402b7c1ad HDDS-12621. Change NodeStatus to value-based. (#8105)
b402b7c1ad is described below
commit b402b7c1ad451a840e04cba364711896e42b6dc2
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Wed Mar 19 10:32:53 2025 -0700
HDDS-12621. Change NodeStatus to value-based. (#8105)
---
.../hadoop/hdds/scm/node/NodeStateManager.java | 6 +-
.../apache/hadoop/hdds/scm/node/NodeStatus.java | 254 ++++++++++-----------
.../hadoop/hdds/scm/node/states/NodeStateMap.java | 8 +-
.../hdds/scm/container/SimpleMockNodeManager.java | 2 +-
.../scm/container/balancer/TestMoveManager.java | 6 +-
.../TestSCMContainerPlacementRackAware.java | 4 +-
.../TestSCMContainerPlacementRackScatter.java | 2 +-
.../replication/TestECOverReplicationHandler.java | 6 +-
.../replication/TestECUnderReplicationHandler.java | 11 +-
.../replication/TestMisReplicationHandler.java | 4 +-
...TestQuasiClosedStuckOverReplicationHandler.java | 2 +-
...estQuasiClosedStuckUnderReplicationHandler.java | 2 +-
.../TestRatisOverReplicationHandler.java | 6 +-
.../TestRatisUnderReplicationHandler.java | 2 +-
.../TestReplicationManagerScenarios.java | 2 +-
.../replication/TestReplicationManagerUtil.java | 4 +-
.../TestVulnerableUnhealthyReplicasHandler.java | 8 +-
.../hdds/scm/node/TestDatanodeAdminMonitor.java | 38 +--
.../hdds/scm/node/TestNodeDecommissionManager.java | 2 +-
.../hdds/scm/node/TestNodeDecommissionMetrics.java | 22 +-
.../hadoop/hdds/scm/node/TestNodeStatus.java | 12 +-
.../hdds/scm/node/states/TestNodeStateMap.java | 4 +-
.../hdds/scm/pipeline/TestECPipelineProvider.java | 6 +-
.../testutils/ReplicationNodeManagerMock.java | 2 +-
24 files changed, 200 insertions(+), 215 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStateManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStateManager.java
index 46f13e66c6..863f4bc40e 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStateManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStateManager.java
@@ -338,11 +338,9 @@ private NodeStatus newNodeStatus(DatanodeDetails dn,
LOG.info("Updating nodeOperationalState on registration as the " +
"datanode has a persisted state of {} and expiry of {}",
dnOpState, dn.getPersistedOpStateExpiryEpochSec());
- return new NodeStatus(dnOpState, state,
- dn.getPersistedOpStateExpiryEpochSec());
+ return NodeStatus.valueOf(dnOpState, state,
dn.getPersistedOpStateExpiryEpochSec());
} else {
- return new NodeStatus(
- NodeOperationalState.IN_SERVICE, state);
+ return NodeStatus.valueOf(NodeOperationalState.IN_SERVICE, state);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStatus.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStatus.java
index 01d57d8329..5dbd6ee54b 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStatus.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeStatus.java
@@ -17,101 +17,134 @@
package org.apache.hadoop.hdds.scm.node;
-import com.google.common.collect.ImmutableSet;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.DECOMMISSIONED;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.DECOMMISSIONING;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.ENTERING_MAINTENANCE;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.IN_MAINTENANCE;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.IN_SERVICE;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeState.DEAD;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeState.HEALTHY;
+import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeState.HEALTHY_READONLY;
+import static org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeState.STALE;
+
+import java.util.Collections;
+import java.util.EnumMap;
import java.util.EnumSet;
+import java.util.Map;
import java.util.Objects;
import java.util.Set;
-import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeState;
/**
- * This class is used to capture the current status of a datanode. This
- * includes its health (healthy, stale or dead) and its operation status (
- * in_service, decommissioned and maintenance mode) along with the expiry time
- * for the operational state (used with maintenance mode).
+ * The status of a datanode including {@link NodeState}, {@link
NodeOperationalState}
+ * and the expiry time for the operational state,
+ * where the expiry time is used in maintenance mode.
+ * <p>
+ * This class is value-based.
*/
-public class NodeStatus implements Comparable<NodeStatus> {
-
- private static final Set<HddsProtos.NodeOperationalState>
- MAINTENANCE_STATES = ImmutableSet.copyOf(EnumSet.of(
- HddsProtos.NodeOperationalState.ENTERING_MAINTENANCE,
- HddsProtos.NodeOperationalState.IN_MAINTENANCE
- ));
-
- private static final Set<HddsProtos.NodeOperationalState>
- DECOMMISSION_STATES = ImmutableSet.copyOf(EnumSet.of(
- HddsProtos.NodeOperationalState.DECOMMISSIONING,
- HddsProtos.NodeOperationalState.DECOMMISSIONED
- ));
-
- private static final Set<HddsProtos.NodeOperationalState>
- OUT_OF_SERVICE_STATES = ImmutableSet.copyOf(EnumSet.of(
- HddsProtos.NodeOperationalState.DECOMMISSIONING,
- HddsProtos.NodeOperationalState.DECOMMISSIONED,
- HddsProtos.NodeOperationalState.ENTERING_MAINTENANCE,
- HddsProtos.NodeOperationalState.IN_MAINTENANCE
- ));
-
- public static Set<HddsProtos.NodeOperationalState> maintenanceStates() {
- return MAINTENANCE_STATES;
+public final class NodeStatus implements Comparable<NodeStatus> {
+ /** For the {@link NodeStatus} objects with {@link
#opStateExpiryEpochSeconds} == 0. */
+ private static final Map<NodeOperationalState, Map<NodeState, NodeStatus>>
CONSTANT_MAP;
+ static {
+ final Map<NodeOperationalState, Map<NodeState, NodeStatus>> map = new
EnumMap<>(NodeOperationalState.class);
+ for (NodeOperationalState op : NodeOperationalState.values()) {
+ final EnumMap<NodeState, NodeStatus> healthMap = new
EnumMap<>(NodeState.class);
+ for (NodeState health : NodeState.values()) {
+ healthMap.put(health, new NodeStatus(health, op, 0));
+ }
+ map.put(op, healthMap);
+ }
+ CONSTANT_MAP = map;
}
- public static Set<HddsProtos.NodeOperationalState> decommissionStates() {
- return DECOMMISSION_STATES;
+ /** @return a {@link NodeStatus} object with {@link
#opStateExpiryEpochSeconds} == 0. */
+ public static NodeStatus valueOf(NodeOperationalState op, NodeState health) {
+ return CONSTANT_MAP.get(op).get(health);
}
- public static Set<HddsProtos.NodeOperationalState> outOfServiceStates() {
- return OUT_OF_SERVICE_STATES;
+ /** @return a {@link NodeStatus} object. */
+ public static NodeStatus valueOf(NodeOperationalState op, NodeState health,
long opExpiryEpochSeconds) {
+ return opExpiryEpochSeconds == 0 ? valueOf(op, health)
+ : new NodeStatus(health, op, opExpiryEpochSeconds);
}
- private HddsProtos.NodeOperationalState operationalState;
- private HddsProtos.NodeState health;
- private long opStateExpiryEpochSeconds;
+ private static final Set<NodeOperationalState> MAINTENANCE_STATES =
Collections.unmodifiableSet(
+ EnumSet.of(ENTERING_MAINTENANCE, IN_MAINTENANCE));
+ /**
+ * @return the set consists of {@link
NodeOperationalState#ENTERING_MAINTENANCE}
+ * and {@link NodeOperationalState#IN_MAINTENANCE}.
+ */
+ public static Set<NodeOperationalState> maintenanceStates() {
+ return MAINTENANCE_STATES;
+ }
- public NodeStatus(HddsProtos.NodeOperationalState operationalState,
- HddsProtos.NodeState health) {
- this.operationalState = operationalState;
- this.health = health;
- this.opStateExpiryEpochSeconds = 0;
+ private static final Set<NodeOperationalState> DECOMMISSION_STATES =
Collections.unmodifiableSet(
+ EnumSet.of(DECOMMISSIONING, DECOMMISSIONED));
+ /**
+ * @return the set consists of {@link NodeOperationalState#DECOMMISSIONING}
+ * and {@link NodeOperationalState#DECOMMISSIONED}.
+ */
+ public static Set<NodeOperationalState> decommissionStates() {
+ return DECOMMISSION_STATES;
}
- public NodeStatus(HddsProtos.NodeOperationalState operationalState,
- HddsProtos.NodeState health,
- long opStateExpireEpocSeconds) {
- this.operationalState = operationalState;
- this.health = health;
- this.opStateExpiryEpochSeconds = opStateExpireEpocSeconds;
+ private static final Set<NodeOperationalState> OUT_OF_SERVICE_STATES =
Collections.unmodifiableSet(
+ EnumSet.of(DECOMMISSIONING, DECOMMISSIONED, ENTERING_MAINTENANCE,
IN_MAINTENANCE));
+ /**
+ * @return the set consists of {@link NodeOperationalState#DECOMMISSIONING},
+ * {@link NodeOperationalState#DECOMMISSIONED},
+ * {@link
NodeOperationalState#ENTERING_MAINTENANCE}
+ * and {@link NodeOperationalState#IN_MAINTENANCE}.
+ */
+ public static Set<NodeOperationalState> outOfServiceStates() {
+ return OUT_OF_SERVICE_STATES;
}
+ private static final NodeStatus IN_SERVICE_HEALTHY = valueOf(IN_SERVICE,
HEALTHY);
+ /** @return the status of {@link NodeOperationalState#IN_SERVICE} and {@link
NodeState#HEALTHY}. */
public static NodeStatus inServiceHealthy() {
- return new NodeStatus(HddsProtos.NodeOperationalState.IN_SERVICE,
- HddsProtos.NodeState.HEALTHY);
+ return IN_SERVICE_HEALTHY;
}
+ private static final NodeStatus IN_SERVICE_HEALTHY_READONLY =
valueOf(IN_SERVICE, HEALTHY_READONLY);
+ /** @return the status of {@link NodeOperationalState#IN_SERVICE} and {@link
NodeState#HEALTHY_READONLY}. */
public static NodeStatus inServiceHealthyReadOnly() {
- return new NodeStatus(HddsProtos.NodeOperationalState.IN_SERVICE,
- HddsProtos.NodeState.HEALTHY_READONLY);
+ return IN_SERVICE_HEALTHY_READONLY;
}
+ private static final NodeStatus IN_SERVICE_STALE =
NodeStatus.valueOf(IN_SERVICE, STALE);
+ /** @return the status of {@link NodeOperationalState#IN_SERVICE} and {@link
NodeState#STALE}. */
public static NodeStatus inServiceStale() {
- return new NodeStatus(HddsProtos.NodeOperationalState.IN_SERVICE,
- HddsProtos.NodeState.STALE);
+ return IN_SERVICE_STALE;
}
+ private static final NodeStatus IN_SERVICE_DEAD =
NodeStatus.valueOf(IN_SERVICE, DEAD);
+ /** @return the status of {@link NodeOperationalState#IN_SERVICE} and {@link
NodeState#DEAD}. */
public static NodeStatus inServiceDead() {
- return new NodeStatus(HddsProtos.NodeOperationalState.IN_SERVICE,
- HddsProtos.NodeState.DEAD);
+ return IN_SERVICE_DEAD;
+ }
+
+ private final NodeState health;
+ private final NodeOperationalState operationalState;
+ private final long opStateExpiryEpochSeconds;
+
+ private NodeStatus(NodeState health, NodeOperationalState op, long
opExpiryEpochSeconds) {
+ this.health = health;
+ this.operationalState = op;
+ this.opStateExpiryEpochSeconds = opExpiryEpochSeconds;
}
+ /** Is this node writeable ({@link NodeState#HEALTHY} and {@link
NodeOperationalState#IN_SERVICE}) ? */
public boolean isNodeWritable() {
- return health == HddsProtos.NodeState.HEALTHY &&
- operationalState == HddsProtos.NodeOperationalState.IN_SERVICE;
+ return health == HEALTHY && operationalState == IN_SERVICE;
}
- public HddsProtos.NodeState getHealth() {
+ public NodeState getHealth() {
return health;
}
- public HddsProtos.NodeOperationalState getOperationalState() {
+ public NodeOperationalState getOperationalState() {
return operationalState;
}
@@ -119,102 +152,68 @@ public long getOpStateExpiryEpochSeconds() {
return opStateExpiryEpochSeconds;
}
+ /** Is the op expired? */
public boolean operationalStateExpired() {
- if (0 == opStateExpiryEpochSeconds) {
- return false;
- }
- return System.currentTimeMillis() / 1000 >= opStateExpiryEpochSeconds;
+ return opStateExpiryEpochSeconds != 0
+ && System.currentTimeMillis() >= 1000 * opStateExpiryEpochSeconds;
}
+ /** @return true iff the node is {@link NodeOperationalState#IN_SERVICE}. */
public boolean isInService() {
- return operationalState == HddsProtos.NodeOperationalState.IN_SERVICE;
+ return operationalState == IN_SERVICE;
}
/**
- * Returns true if the nodeStatus indicates the node is in any decommission
- * state.
- *
- * @return True if the node is in any decommission state, false otherwise
+ * @return true iff the node is {@link NodeOperationalState#DECOMMISSIONING}
+ * or {@link NodeOperationalState#DECOMMISSIONED}.
*/
public boolean isDecommission() {
return DECOMMISSION_STATES.contains(operationalState);
}
- /**
- * Returns true if the node is currently decommissioning.
- *
- * @return True if the node is decommissioning, false otherwise
- */
+ /** @return true iff the node is {@link
NodeOperationalState#DECOMMISSIONING}. */
public boolean isDecommissioning() {
- return operationalState == HddsProtos.NodeOperationalState.DECOMMISSIONING;
+ return operationalState == DECOMMISSIONING;
}
- /**
- * Returns true if the node is decommissioned.
- *
- * @return True if the node is decommissioned, false otherwise
- */
+ /** @return true iff the node is {@link
NodeOperationalState#DECOMMISSIONED}. */
public boolean isDecommissioned() {
- return operationalState == HddsProtos.NodeOperationalState.DECOMMISSIONED;
+ return operationalState == DECOMMISSIONED;
}
/**
- * Returns true if the node is in any maintenance state.
- *
- * @return True if the node is in any maintenance state, false otherwise
+ * @return true iff the node is {@link
NodeOperationalState#ENTERING_MAINTENANCE}
+ * or {@link NodeOperationalState#IN_MAINTENANCE}.
*/
public boolean isMaintenance() {
- return MAINTENANCE_STATES.contains(operationalState);
+ return maintenanceStates().contains(operationalState);
}
- /**
- * Returns true if the node is currently entering maintenance.
- *
- * @return True if the node is entering maintenance, false otherwise
- */
+ /** @return true iff the node is {@link
NodeOperationalState#ENTERING_MAINTENANCE}. */
public boolean isEnteringMaintenance() {
- return operationalState
- == HddsProtos.NodeOperationalState.ENTERING_MAINTENANCE;
+ return operationalState == ENTERING_MAINTENANCE;
}
- /**
- * Returns true if the node is currently in maintenance.
- *
- * @return True if the node is in maintenance, false otherwise.
- */
+ /** @return true iff the node is {@link
NodeOperationalState#IN_MAINTENANCE}. */
public boolean isInMaintenance() {
- return operationalState == HddsProtos.NodeOperationalState.IN_MAINTENANCE;
+ return operationalState == IN_MAINTENANCE;
}
- /**
- * Returns true if the nodeStatus is healthy or healthy_readonly (ie not
stale
- * or dead) and false otherwise.
- *
- * @return True if the node is healthy or healthy_readonly, false otherwise.
- */
+ /** @return true iff this node is {@link NodeState#HEALTHY} or {@link
NodeState#HEALTHY_READONLY}. */
public boolean isHealthy() {
- return health == HddsProtos.NodeState.HEALTHY
- || health == HddsProtos.NodeState.HEALTHY_READONLY;
+ return health == HEALTHY
+ || health == HEALTHY_READONLY;
}
- /**
- * Returns true if the nodeStatus is either healthy or stale and false
- * otherwise.
- *
- * @return True is the node is Healthy or Stale, false otherwise.
- */
+ /** @return true iff this node is {@link NodeState#HEALTHY} or {@link
NodeState#STALE}. */
public boolean isAlive() {
- return health == HddsProtos.NodeState.HEALTHY
- || health == HddsProtos.NodeState.STALE;
+ return health == HEALTHY
+ || health == STALE;
}
- /**
- * Returns true if the nodeStatus is dead and false otherwise.
- *
- * @return True is the node is Dead, false otherwise.
- */
+ /** @return true iff the node is {@link NodeState#DEAD}. */
public boolean isDead() {
- return health == HddsProtos.NodeState.DEAD;
+ return health == DEAD;
}
@Override
@@ -228,13 +227,10 @@ public boolean equals(Object obj) {
if (getClass() != obj.getClass()) {
return false;
}
- NodeStatus other = (NodeStatus) obj;
- if (this.operationalState == other.operationalState &&
- this.health == other.health
- && this.opStateExpiryEpochSeconds == other.opStateExpiryEpochSeconds) {
- return true;
- }
- return false;
+ final NodeStatus that = (NodeStatus) obj;
+ return this.operationalState == that.operationalState
+ && this.health == that.health
+ && this.opStateExpiryEpochSeconds == that.opStateExpiryEpochSeconds;
}
@Override
@@ -244,8 +240,8 @@ public int hashCode() {
@Override
public String toString() {
- return "OperationalState: " + operationalState + " Health: " + health +
- " OperationStateExpiry: " + opStateExpiryEpochSeconds;
+ return "OperationalState: " + operationalState
+ + "(expiry: " + opStateExpiryEpochSeconds + "s), Health: " + health;
}
@Override
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/states/NodeStateMap.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/states/NodeStateMap.java
index 40581592b2..79c4346bf8 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/states/NodeStateMap.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/states/NodeStateMap.java
@@ -142,8 +142,7 @@ public NodeStatus updateNodeHealthState(DatanodeID nodeId,
NodeState newHealth)
try {
DatanodeInfo dn = getNodeInfoUnsafe(nodeId);
NodeStatus oldStatus = dn.getNodeStatus();
- NodeStatus newStatus = new NodeStatus(
- oldStatus.getOperationalState(), newHealth);
+ NodeStatus newStatus =
NodeStatus.valueOf(oldStatus.getOperationalState(), newHealth);
dn.setNodeStatus(newStatus);
return newStatus;
} finally {
@@ -166,8 +165,7 @@ public NodeStatus updateNodeOperationalState(DatanodeID
nodeId,
try {
DatanodeInfo dn = getNodeInfoUnsafe(nodeId);
NodeStatus oldStatus = dn.getNodeStatus();
- NodeStatus newStatus = new NodeStatus(
- newOpState, oldStatus.getHealth(), opStateExpiryEpochSeconds);
+ NodeStatus newStatus = NodeStatus.valueOf(newOpState,
oldStatus.getHealth(), opStateExpiryEpochSeconds);
dn.setNodeStatus(newStatus);
return newStatus;
} finally {
@@ -391,7 +389,7 @@ private Set<ContainerID> getExisting(DatanodeID id) throws
NodeNotFoundException
private List<DatanodeInfo> filterNodes(
NodeOperationalState opState, NodeState health) {
if (opState != null && health != null) {
- return filterNodes(matching(new NodeStatus(opState, health)));
+ return filterNodes(matching(NodeStatus.valueOf(opState, health)));
}
if (opState != null) {
return filterNodes(matching(opState));
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
index 44469c6e41..a5272f8a4f 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/SimpleMockNodeManager.java
@@ -130,7 +130,7 @@ public void setNodeOperationalState(DatanodeDetails dn,
throw new NodeNotFoundException(dn.getID());
}
dni.setNodeStatus(
- new NodeStatus(
+ NodeStatus.valueOf(
newState, dni.getNodeStatus().getHealth(), opStateExpiryEpocSec));
}
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 cd60968936..2f5df49e16 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
@@ -148,7 +148,7 @@ public void testMoveSourceOrDestNotInService() throws
NodeNotFoundException,
assertMoveFailsWith(REPLICATION_FAIL_NODE_UNHEALTHY,
containerInfo.containerID());
- nodes.put(src, new NodeStatus(
+ nodes.put(src, NodeStatus.valueOf(
HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodes.put(tgt, NodeStatus.inServiceHealthy());
@@ -156,7 +156,7 @@ public void testMoveSourceOrDestNotInService() throws
NodeNotFoundException,
containerInfo.containerID());
nodes.put(src, NodeStatus.inServiceHealthy());
- nodes.put(tgt, new NodeStatus(
+ nodes.put(tgt, NodeStatus.valueOf(
HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
assertMoveFailsWith(REPLICATION_FAIL_NODE_NOT_IN_SERVICE,
@@ -463,7 +463,7 @@ public void testMoveCompleteSrcNotHealthy() throws
Exception {
public void testMoveCompleteSrcNotInService() throws Exception {
CompletableFuture<MoveManager.MoveResult> res = setupSuccessfulMove();
- nodes.put(src, new NodeStatus(
+ nodes.put(src, NodeStatus.valueOf(
HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
ContainerReplicaOp op = new ContainerReplicaOp(
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
index 6942cda70e..e5c396fefa 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackAware.java
@@ -616,7 +616,7 @@ public void testOutOfServiceNodesNotSelected(int
datanodeCount) {
setup(datanodeCount);
// Set all the nodes to out of service
for (DatanodeInfo dn : dnInfos) {
- dn.setNodeStatus(new NodeStatus(DECOMMISSIONED, HEALTHY));
+ dn.setNodeStatus(NodeStatus.valueOf(DECOMMISSIONED, HEALTHY));
}
for (int i = 0; i < 10; i++) {
@@ -632,7 +632,7 @@ public void testOutOfServiceNodesNotSelected(int
datanodeCount) {
// ok, as there is only 1 IN_SERVICE node and with the retry logic we
// may never find it.
}
- dnInfos.get(index).setNodeStatus(new NodeStatus(DECOMMISSIONED,
HEALTHY));
+ dnInfos.get(index).setNodeStatus(NodeStatus.valueOf(DECOMMISSIONED,
HEALTHY));
}
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackScatter.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackScatter.java
index 235a4563c1..07e015c660 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackScatter.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/placement/algorithms/TestSCMContainerPlacementRackScatter.java
@@ -826,7 +826,7 @@ public void testExcludedNodesOverlapsOutOfServiceNodes()
throws SCMException {
setup(datanodeCount);
// DN 5 is out of service
- dnInfos.get(5).setNodeStatus(new NodeStatus(DECOMMISSIONED, HEALTHY));
+ dnInfos.get(5).setNodeStatus(NodeStatus.valueOf(DECOMMISSIONED, HEALTHY));
// SCM should have detected that DN 5 is dead
cluster.remove(datanodes.get(5));
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 073c2e959c..2fc978794d 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
@@ -92,11 +92,9 @@ void setup(@TempDir File testDir) throws
NodeNotFoundException, NotLeaderExcepti
.thenAnswer(invocation -> {
DatanodeDetails dd = invocation.getArgument(0);
if (staleNode != null && staleNode.equals(dd)) {
- return new NodeStatus(dd.getPersistedOpState(),
- HddsProtos.NodeState.STALE, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.STALE);
}
- return new NodeStatus(dd.getPersistedOpState(),
- HddsProtos.NodeState.HEALTHY, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
});
commandsSent = new HashSet<>();
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 fe2e6e4da6..8a18c1ba1d 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
@@ -131,8 +131,7 @@ void setup(@TempDir File testDir) throws
NodeNotFoundException,
nodeManager = new MockNodeManager(true, 10) {
@Override
public NodeStatus getNodeStatus(DatanodeDetails dd) {
- return new NodeStatus(
- dd.getPersistedOpState(), HddsProtos.NodeState.HEALTHY, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
}
};
replicationManager = mock(ReplicationManager.class);
@@ -146,8 +145,7 @@ public NodeStatus getNodeStatus(DatanodeDetails dd) {
when(replicationManager.getNodeStatus(any(DatanodeDetails.class)))
.thenAnswer(invocation -> {
DatanodeDetails dd = invocation.getArgument(0);
- return new NodeStatus(dd.getPersistedOpState(),
- HddsProtos.NodeState.HEALTHY, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
});
commandsSent = new HashSet<>();
@@ -392,11 +390,10 @@ public void
testUnderReplicationWithDecomIndexAndMaintOnSameIndex()
@Override
public NodeStatus getNodeStatus(DatanodeDetails dd) {
if (dd.equals(deadMaintenance.getDatanodeDetails())) {
- return new NodeStatus(dd.getPersistedOpState(),
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.DEAD);
}
- return new NodeStatus(
- dd.getPersistedOpState(), HddsProtos.NodeState.HEALTHY, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
}
};
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestMisReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestMisReplicationHandler.java
index ff6df90b51..43824f8886 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestMisReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestMisReplicationHandler.java
@@ -86,8 +86,8 @@ protected void setup(ReplicationConfig repConfig, File
testDir)
when(replicationManager.getNodeStatus(any(DatanodeDetails.class)))
.thenAnswer(invocation -> {
DatanodeDetails dd = invocation.getArgument(0);
- return new NodeStatus(dd.getPersistedOpState(),
- HddsProtos.NodeState.HEALTHY, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
+ HddsProtos.NodeState.HEALTHY);
});
ReplicationManagerConfiguration rmConf =
conf.getObject(ReplicationManagerConfiguration.class);
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 20f6de21b0..6d6a342f5f 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
@@ -85,7 +85,7 @@ void setup() throws NodeNotFoundException,
replicationManager.getNodeStatus(any(DatanodeDetails.class)))
.thenAnswer(invocationOnMock -> {
DatanodeDetails dn = invocationOnMock.getArgument(0);
- return new NodeStatus(dn.getPersistedOpState(),
+ return NodeStatus.valueOf(dn.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
});
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 2c46aea502..a43a04fa26 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
@@ -98,7 +98,7 @@ void setup(@TempDir File testDir) throws
NodeNotFoundException,
replicationManager.getNodeStatus(any(DatanodeDetails.class)))
.thenAnswer(invocationOnMock -> {
DatanodeDetails dn = invocationOnMock.getArgument(0);
- return new NodeStatus(dn.getPersistedOpState(),
+ return NodeStatus.valueOf(dn.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
});
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 3a15358a07..471e60173f 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
@@ -94,8 +94,7 @@ public void setup() throws NodeNotFoundException,
NotLeaderException,
when(replicationManager.getNodeStatus(any(DatanodeDetails.class)))
.thenAnswer(invocation -> {
DatanodeDetails dd = invocation.getArgument(0);
- return new NodeStatus(dd.getPersistedOpState(),
- HddsProtos.NodeState.HEALTHY, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
});
commandsSent = new HashSet<>();
@@ -208,8 +207,7 @@ public void
testOverReplicatedQuasiClosedContainerWithDifferentOrigins()
when(replicationManager.getNodeStatus(eq(staleNode)))
.thenAnswer(invocation -> {
DatanodeDetails dd = invocation.getArgument(0);
- return new NodeStatus(dd.getPersistedOpState(),
- HddsProtos.NodeState.STALE, 0);
+ return NodeStatus.valueOf(dd.getPersistedOpState(),
HddsProtos.NodeState.STALE);
});
testProcessing(replicas, Collections.emptyList(),
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 b722fd08f6..21bc259b1a 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
@@ -115,7 +115,7 @@ void setup(@TempDir File testDir) throws
NodeNotFoundException,
replicationManager.getNodeStatus(any(DatanodeDetails.class)))
.thenAnswer(invocationOnMock -> {
DatanodeDetails dn = invocationOnMock.getArgument(0);
- return new NodeStatus(dn.getPersistedOpState(),
+ return NodeStatus.valueOf(dn.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
});
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 79f6299bac..7b35ee269b 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
@@ -447,7 +447,7 @@ public DatanodeDetails getDatanodeDetails() {
public ContainerReplica buildContainerReplica() {
createDatanodeDetails();
createOrigin();
- NODE_STATUS_MAP.put(datanodeDetails, new NodeStatus(operationalState,
healthState));
+ NODE_STATUS_MAP.put(datanodeDetails,
NodeStatus.valueOf(operationalState, healthState));
datanodeDetails.setPersistedOpState(operationalState);
ContainerReplica.ContainerReplicaBuilder builder = new
ContainerReplica.ContainerReplicaBuilder();
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 1d771327ca..97abe6be99 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
@@ -105,7 +105,7 @@ public void testGetExcludedAndUsedNodes() throws
NodeNotFoundException {
final DatanodeDetails dn = invocation.getArgument(0);
for (ContainerReplica r : replicas) {
if (r.getDatanodeDetails().equals(dn)) {
- return new NodeStatus(
+ return NodeStatus.valueOf(
r.getDatanodeDetails().getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
}
@@ -189,7 +189,7 @@ public void
testGetUsedAndExcludedNodesForQuasiClosedContainer() throws NodeNotF
final DatanodeDetails dn = invocation.getArgument(0);
for (ContainerReplica r : replicas) {
if (r.getDatanodeDetails().equals(dn)) {
- return new NodeStatus(
+ return NodeStatus.valueOf(
r.getDatanodeDetails().getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestVulnerableUnhealthyReplicasHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestVulnerableUnhealthyReplicasHandler.java
index 451c87304d..61e9ab8632 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestVulnerableUnhealthyReplicasHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestVulnerableUnhealthyReplicasHandler.java
@@ -148,7 +148,7 @@ public void
testReturnsTrueForQuasiClosedContainerWithVulnerableReplica() throws
.thenAnswer(invocation -> {
DatanodeDetails dn = invocation.getArgument(0);
if (dn.equals(unhealthy.getDatanodeDetails())) {
- return new NodeStatus(DECOMMISSIONING, HEALTHY);
+ return NodeStatus.valueOf(DECOMMISSIONING, HEALTHY);
}
return NodeStatus.inServiceHealthy();
});
@@ -191,7 +191,7 @@ public void
testReturnsTrueForQuasiClosedContainerWithVulnerableReplicaWhenAllRe
.thenAnswer(invocation -> {
DatanodeDetails dn = invocation.getArgument(0);
if (dn.equals(unhealthy.getDatanodeDetails())) {
- return new NodeStatus(DECOMMISSIONING, HEALTHY);
+ return NodeStatus.valueOf(DECOMMISSIONING, HEALTHY);
}
return NodeStatus.inServiceHealthy();
});
@@ -219,7 +219,7 @@ public void
testReturnsFalseForVulnerableReplicaWithAnotherCopy() throws NodeNot
.thenAnswer(invocation -> {
DatanodeDetails dn = invocation.getArgument(0);
if (dn.equals(unhealthy.getDatanodeDetails())) {
- return new NodeStatus(DECOMMISSIONING, HEALTHY);
+ return NodeStatus.valueOf(DECOMMISSIONING, HEALTHY);
}
return NodeStatus.inServiceHealthy();
});
@@ -250,7 +250,7 @@ public void testDoesNotEnqueueForReadOnlyRequest() throws
NodeNotFoundException
.thenAnswer(invocation -> {
DatanodeDetails dn = invocation.getArgument(0);
if (dn.equals(unhealthy.getDatanodeDetails())) {
- return new NodeStatus(DECOMMISSIONING, HEALTHY);
+ return NodeStatus.valueOf(DECOMMISSIONING, HEALTHY);
}
return NodeStatus.inServiceHealthy();
});
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDatanodeAdminMonitor.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDatanodeAdminMonitor.java
index 2711bad590..b97d6a2bbb 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDatanodeAdminMonitor.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestDatanodeAdminMonitor.java
@@ -115,7 +115,7 @@ public void testClosePipelinesEventFiredWhenAdminStarted()
throws NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
// Ensure the node has some pipelines
nodeManager.setPipelines(dn1, 2);
@@ -154,7 +154,7 @@ public void
testDecommissionNodeTransitionsToCompleteWhenNoContainers()
throws NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
// Add the node to the monitor. By default we have zero pipelines and
@@ -173,7 +173,7 @@ public void
testDecommissionNodeWaitsForContainersToReplicate()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(3));
@@ -236,7 +236,7 @@ public void
testDecommissionWaitsForUnhealthyReplicaToReplicateNewRM()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
// create 3 QUASI_CLOSED replicas with containerID 1 and same origin ID
@@ -307,7 +307,7 @@ public void
testDecommissionWaitsForUnhealthyReplicaWithUniqueOriginToReplicateN
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
// create a container and 3 QUASI_CLOSED replicas with containerID 1 and
same origin ID
ContainerID containerID = ContainerID.valueOf(1);
@@ -364,7 +364,7 @@ public void testDecommissionNotBlockedByDeletingContainers()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(3));
@@ -393,7 +393,7 @@ public void
testDecommissionNodeWithUnrecoverableECContainer()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(1));
@@ -451,7 +451,7 @@ public void
testDecommissionAbortedWhenNodeInUnexpectedState()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(3));
@@ -475,7 +475,7 @@ public void
testDecommissionAbortedWhenNodeInUnexpectedState()
// Set the node to dead, and then the workflow should get aborted, setting
// the node state back to IN_SERVICE on the next run.
nodeManager.setNodeStatus(dn1,
- new NodeStatus(IN_SERVICE,
+ NodeStatus.valueOf(IN_SERVICE,
HddsProtos.NodeState.HEALTHY));
monitor.run();
assertEquals(0, monitor.getTrackedNodeCount());
@@ -488,7 +488,7 @@ public void testDecommissionAbortedWhenNodeGoesDead()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(3));
@@ -512,7 +512,7 @@ public void testDecommissionAbortedWhenNodeGoesDead()
// Set the node to dead, and then the workflow should get aborted, setting
// the node state back to IN_SERVICE.
nodeManager.setNodeStatus(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.DEAD));
monitor.run();
assertEquals(0, monitor.getTrackedNodeCount());
@@ -525,7 +525,7 @@ public void testStartTimeMetricWhenNodesDecommissioned()
throws NodeNotFoundException, ContainerNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(3));
DatanodeAdminMonitorTestUtil
@@ -554,7 +554,7 @@ public void testMaintenanceWaitsForMaintenanceToComplete()
throws NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(ENTERING_MAINTENANCE,
+ NodeStatus.valueOf(ENTERING_MAINTENANCE,
HddsProtos.NodeState.HEALTHY));
// Add the node to the monitor, it should transiting to
@@ -585,7 +585,7 @@ public void testMaintenanceEndsClosingPipelines()
throws NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(ENTERING_MAINTENANCE,
+ NodeStatus.valueOf(ENTERING_MAINTENANCE,
HddsProtos.NodeState.HEALTHY));
// Ensure the node has some pipelines
nodeManager.setPipelines(dn1, 2);
@@ -611,7 +611,7 @@ public void testMaintenanceEndsWhileReplicatingContainers()
throws ContainerNotFoundException, NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(ENTERING_MAINTENANCE,
+ NodeStatus.valueOf(ENTERING_MAINTENANCE,
HddsProtos.NodeState.HEALTHY));
nodeManager.setContainers(dn1, generateContainers(3));
@@ -646,7 +646,7 @@ public void testDeadMaintenanceNodeDoesNotAbortWorkflow()
throws NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(ENTERING_MAINTENANCE,
+ NodeStatus.valueOf(ENTERING_MAINTENANCE,
HddsProtos.NodeState.HEALTHY));
// Add the node to the monitor, it should transiting to
@@ -658,7 +658,7 @@ public void testDeadMaintenanceNodeDoesNotAbortWorkflow()
// Set the node dead and ensure the workflow does not end
NodeStatus status = nodeManager.getNodeStatus(dn1);
- nodeManager.setNodeStatus(dn1, new NodeStatus(
+ nodeManager.setNodeStatus(dn1, NodeStatus.valueOf(
status.getOperationalState(), HddsProtos.NodeState.DEAD));
// Running the monitor again causes the node to remain in maintenance
@@ -672,7 +672,7 @@ public void testCancelledNodesMovedToInService()
throws NodeNotFoundException {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(ENTERING_MAINTENANCE,
+ NodeStatus.valueOf(ENTERING_MAINTENANCE,
HddsProtos.NodeState.HEALTHY));
// Add the node to the monitor, it should transiting to
@@ -696,7 +696,7 @@ public void testContainersReplicatedOnDecomDnAPI()
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
Set<ContainerID> containers = new HashSet<>();
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
index 2f7453c0fb..83f1cb381d 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionManager.java
@@ -1044,7 +1044,7 @@ private NodeStatus getNodeOpState(DatanodeDetails dn,
List<DatanodeDetails> dns)
}
for (DatanodeDetails datanode : dns) {
if (datanode.equals(dn)) {
- return new NodeStatus(datanode.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
+ return NodeStatus.valueOf(datanode.getPersistedOpState(),
HddsProtos.NodeState.HEALTHY);
}
}
return null;
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionMetrics.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionMetrics.java
index d7462c3777..e60de693fc 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionMetrics.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeDecommissionMetrics.java
@@ -85,7 +85,7 @@ public void after() {
public void testDecommMonitorCollectTrackedNodes() {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(ENTERING_MAINTENANCE,
+ NodeStatus.valueOf(ENTERING_MAINTENANCE,
HddsProtos.NodeState.HEALTHY));
monitor.startMonitoring(dn1);
monitor.run();
@@ -100,7 +100,7 @@ public void testDecommMonitorCollectTrackedNodes() {
public void testDecommMonitorCollectRecommissionNodes() {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
monitor.startMonitoring(dn1);
monitor.run();
@@ -122,7 +122,7 @@ public void
testDecommMonitorCollectPipelinesWaitingClosed() {
"datanode_host1",
"/r1/ng1");
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
// Ensure the node has some pipelines
nodeManager.setPipelines(dn1, 2);
@@ -155,7 +155,7 @@ public void testDecommMonitorCollectUnderReplicated()
"datanode_host1",
"/r1/ng1");
nodeManager.register(dn1,
- new NodeStatus(HddsProtos.NodeOperationalState.DECOMMISSIONING,
+ NodeStatus.valueOf(HddsProtos.NodeOperationalState.DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
Set<ContainerID> containers = new HashSet<>();
@@ -195,7 +195,7 @@ public void testDecommMonitorCollectSufficientlyReplicated()
"datanode_host1",
"/r1/ng1");
nodeManager.register(dn1,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
Set<ContainerID> containers = new HashSet<>();
containers.add(ContainerID.valueOf(1));
@@ -233,7 +233,7 @@ public void testDecommMonitorCollectUnclosedContainers()
"datanode_host1",
"/r1/ng1");
nodeManager.register(dn1,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
Set<ContainerID> containers = new HashSet<>();
containers.add(ContainerID.valueOf(1));
@@ -269,10 +269,10 @@ public void
testDecommMonitorCollectionMultipleDnContainers()
DatanodeDetails dn2 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.register(dn2,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
Set<ContainerID> containersDn1 = new HashSet<>();
@@ -312,10 +312,10 @@ public void
testDecommMonitorCollectionMultipleDnPipelines() {
DatanodeDetails dn2 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.register(dn2,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setPipelines(dn1, 2);
@@ -334,7 +334,7 @@ public void testDecommMonitorStartTimeForHost() {
DatanodeDetails dn1 = MockDatanodeDetails.randomDatanodeDetails();
nodeManager.register(dn1,
- new NodeStatus(DECOMMISSIONING,
+ NodeStatus.valueOf(DECOMMISSIONING,
HddsProtos.NodeState.HEALTHY));
nodeManager.setPipelines(dn1, 2);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStatus.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStatus.java
index d7e3194072..01ceab3ab3 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStatus.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestNodeStatus.java
@@ -40,27 +40,27 @@ class TestNodeStatus {
@ParameterizedTest
@EnumSource
void readOnly(HddsProtos.NodeOperationalState state) {
- assertEquals(0, new NodeStatus(state, HEALTHY)
- .compareTo(new NodeStatus(state, HEALTHY_READONLY)));
+ assertEquals(0, NodeStatus.valueOf(state, HEALTHY)
+ .compareTo(NodeStatus.valueOf(state, HEALTHY_READONLY)));
}
@Test
void healthyFirst() {
assertThat(0).isGreaterThan(inServiceHealthy().compareTo(inServiceStale()));
assertThat(0).isLessThan(inServiceDead().compareTo(inServiceHealthy()));
- assertThat(0).isGreaterThan(new NodeStatus(ENTERING_MAINTENANCE,
HEALTHY).compareTo(
+ assertThat(0).isGreaterThan(NodeStatus.valueOf(ENTERING_MAINTENANCE,
HEALTHY).compareTo(
inServiceStale()
));
assertThat(0).isLessThan(inServiceStale().compareTo(
- new NodeStatus(DECOMMISSIONING, HEALTHY)
+ NodeStatus.valueOf(DECOMMISSIONING, HEALTHY)
));
}
@Test
void inServiceFirst() {
assertThat(0).isGreaterThan(inServiceHealthy().compareTo(
- new NodeStatus(ENTERING_MAINTENANCE, HEALTHY)));
- assertThat(0).isLessThan(new NodeStatus(DECOMMISSIONING,
HEALTHY).compareTo(
+ NodeStatus.valueOf(ENTERING_MAINTENANCE, HEALTHY)));
+ assertThat(0).isLessThan(NodeStatus.valueOf(DECOMMISSIONING,
HEALTHY).compareTo(
inServiceHealthy()
));
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/states/TestNodeStateMap.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/states/TestNodeStateMap.java
index c0d0932bb9..1f338f7beb 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/states/TestNodeStateMap.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/states/TestNodeStateMap.java
@@ -82,7 +82,7 @@ public void testNodeOperationalStateCanBeUpdated()
NodeStatus status = NodeStatus.inServiceHealthy();
map.addNode(dn, status, null);
- NodeStatus expectedStatus = new NodeStatus(
+ NodeStatus expectedStatus = NodeStatus.valueOf(
NodeOperationalState.DECOMMISSIONING,
NodeState.HEALTHY, 999);
NodeStatus returnedStatus = map.updateNodeOperationalState(
@@ -167,7 +167,7 @@ private void addNodeWithState(
NodeOperationalState opState, NodeState health
)
throws NodeAlreadyExistsException {
- NodeStatus status = new NodeStatus(opState, health);
+ NodeStatus status = NodeStatus.valueOf(opState, health);
map.addNode(dn, status, null);
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestECPipelineProvider.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestECPipelineProvider.java
index f3b42d7d49..6aecd2b5fd 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestECPipelineProvider.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestECPipelineProvider.java
@@ -137,10 +137,10 @@ void omitsDeadNodes() throws NodeNotFoundException {
.thenReturn(NodeStatus.inServiceDead());
DatanodeDetails dead2 = iterator.next().getDatanodeDetails();
when(nodeManager.getNodeStatus(dead2))
- .thenReturn(new NodeStatus(IN_MAINTENANCE, DEAD));
+ .thenReturn(NodeStatus.valueOf(IN_MAINTENANCE, DEAD));
DatanodeDetails dead3 = iterator.next().getDatanodeDetails();
when(nodeManager.getNodeStatus(dead3))
- .thenReturn(new NodeStatus(DECOMMISSIONED, DEAD));
+ .thenReturn(NodeStatus.valueOf(DECOMMISSIONED, DEAD));
Set<DatanodeDetails> deadNodes = ImmutableSet.of(dead, dead2, dead3);
Pipeline pipeline = provider.createForRead(ecConf, replicas);
@@ -166,7 +166,7 @@ void sortsHealthyNodesFirst() throws NodeNotFoundException {
DatanodeDetails decomNode = MockDatanodeDetails.randomDatanodeDetails();
replicas.add(replica.toBuilder().setDatanodeDetails(decomNode).build());
when(nodeManager.getNodeStatus(decomNode))
- .thenReturn(new NodeStatus(DECOMMISSIONING, HEALTHY));
+ .thenReturn(NodeStatus.valueOf(DECOMMISSIONING, HEALTHY));
decomNodes.add(decomNode);
DatanodeDetails staleNode = MockDatanodeDetails.randomDatanodeDetails();
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
index e87760171a..d84ea22110 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/ozone/container/testutils/ReplicationNodeManagerMock.java
@@ -238,7 +238,7 @@ public void setNodeOperationalState(DatanodeDetails dd,
throws NodeNotFoundException {
NodeStatus currentStatus = nodeStateMap.get(dd);
if (currentStatus != null) {
- nodeStateMap.put(dd, new NodeStatus(newState, currentStatus.getHealth(),
+ nodeStateMap.put(dd, NodeStatus.valueOf(newState,
currentStatus.getHealth(),
opStateExpiryEpocSec));
} else {
throw new NodeNotFoundException(dd.getID());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]