diff --git a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java index c02306f8af8b..bf49d408f7f9 100644 --- a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java +++ b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java @@ -167,7 +167,7 @@ private synchronized void connectToDatanode(DatanodeDetails dn) } // read port from the data node, on failure use default configured // port. - int port = dn.getPort(DatanodeDetails.Port.Name.STANDALONE).getValue(); + int port = dn.getStandalonePort().getValue(); if (port == 0) { port = config.getInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT_DEFAULT); diff --git a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java index 07b704417216..52f31c9d129d 100644 --- a/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java +++ b/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java @@ -185,8 +185,7 @@ private String getPipelineCacheKey(Pipeline pipeline, // Standalone port is chosen since all datanodes should have a // standalone port regardless of version and this port should not // have any collisions. - key += closestNode.getHostName() + closestNode.getPort( - DatanodeDetails.Port.Name.STANDALONE); + key += closestNode.getHostName() + closestNode.getStandalonePort(); } catch (IOException e) { LOG.error("Failed to get closest node to create pipeline cache key:" + e.getMessage()); diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java index 12efcc9aa202..f762b4cc70dd 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/protocol/DatanodeDetails.java @@ -234,6 +234,18 @@ public synchronized void setPort(Name name, int port) { setPort(new Port(name, port)); } + public void setRatisPort(int port) { + setPort(Name.RATIS, port); + } + + public void setRestPort(int port) { + setPort(Name.REST, port); + } + + public void setStandalonePort(int port) { + setPort(Name.STANDALONE, port); + } + /** * Returns all the Ports used by DataNode. * @@ -324,20 +336,52 @@ public void setPersistedOpStateExpiryEpochSec(long expiry) { * @return Port */ public synchronized Port getPort(Port.Name name) { + Port ratisPort = null; for (Port port : ports) { if (port.getName().equals(name)) { return port; } + if (port.getName().equals(Name.RATIS)) { + ratisPort = port; + } } - // if no separate admin/server/datastream port, return single Ratis one for - // compat + // if no separate admin/server/datastream port, + // return single Ratis one for compatibility if (name == Name.RATIS_ADMIN || name == Name.RATIS_SERVER || name == Name.RATIS_DATASTREAM) { - return getPort(Name.RATIS); + return ratisPort; } return null; } + /** + * Helper method to get the Ratis port. + * + * @return Port + */ + public Port getRatisPort() { + return getPort(Name.RATIS); + } + + /** + * Helper method to get the REST port. + * + * @return Port + */ + public Port getRestPort() { + return getPort(Name.REST); + } + + /** + * Helper method to get the Standalone port. + * + * @return Port + */ + public Port getStandalonePort() { + return getPort(Name.STANDALONE); + } + + /** * Starts building a new DatanodeDetails from the protobuf input. * @@ -863,6 +907,36 @@ public static Port newPort(Port.Name name, Integer value) { return new Port(name, value); } + /** + * Constructs a new Ratis Port with the given port number. + * + * @param portNumber Port number + * @return the {@link Port} instance + */ + public static Port newRatisPort(Integer portNumber) { + return newPort(Name.RATIS, portNumber); + } + + /** + * Constructs a new REST Port with the given port number. + * + * @param portNumber Port number + * @return the {@link Port} instance + */ + public static Port newRestPort(Integer portNumber) { + return newPort(Name.REST, portNumber); + } + + /** + * Constructs a new Standalone Port with the given port number. + * + * @param portNumber Port number + * @return the {@link Port} instance + */ + public static Port newStandalonePort(Integer portNumber) { + return newPort(Name.STANDALONE, portNumber); + } + /** * Container to hold DataNode Port details. */ diff --git a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/scm/container/common/helpers/TestExcludeList.java b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/scm/container/common/helpers/TestExcludeList.java index 5571330ee64a..d8af0c4d5ab9 100644 --- a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/scm/container/common/helpers/TestExcludeList.java +++ b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/scm/container/common/helpers/TestExcludeList.java @@ -37,19 +37,19 @@ public class TestExcludeList { public void excludeNodesShouldBeCleanedBasedOnGivenTime() { ExcludeList list = new ExcludeList(10, clock); list.addDatanode(DatanodeDetails.newBuilder().setUuid(UUID.randomUUID()) - .setIpAddress("127.0.0.1").setHostName("localhost").addPort( - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, 2001)) + .setIpAddress("127.0.0.1").setHostName("localhost") + .addPort(DatanodeDetails.newStandalonePort(2001)) .build()); assertEquals(1, list.getDatanodes().size()); clock.fastForward(11); assertEquals(0, list.getDatanodes().size()); list.addDatanode(DatanodeDetails.newBuilder().setUuid(UUID.randomUUID()) - .setIpAddress("127.0.0.2").setHostName("localhost").addPort( - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, 2001)) + .setIpAddress("127.0.0.2").setHostName("localhost") + .addPort(DatanodeDetails.newStandalonePort(2001)) .build()); list.addDatanode(DatanodeDetails.newBuilder().setUuid(UUID.randomUUID()) - .setIpAddress("127.0.0.3").setHostName("localhost").addPort( - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, 2001)) + .setIpAddress("127.0.0.3").setHostName("localhost") + .addPort(DatanodeDetails.newStandalonePort(2001)) .build()); assertEquals(2, list.getDatanodes().size()); } @@ -58,8 +58,8 @@ public void excludeNodesShouldBeCleanedBasedOnGivenTime() { public void excludeNodeShouldNotBeCleanedIfExpiryTimeIsZero() { ExcludeList list = new ExcludeList(0, clock); list.addDatanode(DatanodeDetails.newBuilder().setUuid(UUID.randomUUID()) - .setIpAddress("127.0.0.1").setHostName("localhost").addPort( - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, 2001)) + .setIpAddress("127.0.0.1").setHostName("localhost") + .addPort(DatanodeDetails.newStandalonePort(2001)) .build()); assertEquals(1, list.getDatanodes().size()); clock.fastForward(1); diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/XceiverServerGrpc.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/XceiverServerGrpc.java index 624f153e8764..0d95ac25edac 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/XceiverServerGrpc.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/XceiverServerGrpc.java @@ -30,7 +30,6 @@ import org.apache.hadoop.hdds.conf.ConfigurationSource; import org.apache.hadoop.hdds.protocol.DatanodeDetails; -import org.apache.hadoop.hdds.protocol.DatanodeDetails.Port.Name; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerCommandRequestProto; import org.apache.hadoop.hdds.protocol.proto.HddsProtos; @@ -198,9 +197,7 @@ public void start() throws IOException { } //register the real port to the datanode details. - datanodeDetails.setPort(DatanodeDetails - .newPort(Name.STANDALONE, - realPort)); + datanodeDetails.setPort(DatanodeDetails.newStandalonePort(realPort)); isStarted = true; } diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/ContainerTestUtils.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/ContainerTestUtils.java index 53ba8b685782..4347e0013acd 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/ContainerTestUtils.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/ContainerTestUtils.java @@ -152,11 +152,11 @@ public static DatanodeDetails createDatanodeDetails() { .nextInt(256) + "." + random.nextInt(256); DatanodeDetails.Port containerPort = - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, 0); + DatanodeDetails.newStandalonePort(0); DatanodeDetails.Port ratisPort = - DatanodeDetails.newPort(DatanodeDetails.Port.Name.RATIS, 0); + DatanodeDetails.newRatisPort(0); DatanodeDetails.Port restPort = - DatanodeDetails.newPort(DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.newRestPort(0); DatanodeDetails.Builder builder = DatanodeDetails.newBuilder(); builder.setUuid(UUID.randomUUID()) .setHostName("localhost") @@ -345,7 +345,7 @@ public static ContainerController getEmptyContainerController() { public static XceiverServerRatis newXceiverServerRatis( DatanodeDetails dn, OzoneConfiguration conf) throws IOException { conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT, - dn.getPort(DatanodeDetails.Port.Name.RATIS).getValue()); + dn.getRatisPort().getValue()); return XceiverServerRatis.newXceiverServerRatis(null, dn, conf, getNoopContainerDispatcher(), getEmptyContainerController(), diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestDatanodeStateMachine.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestDatanodeStateMachine.java index e1e1ee9172a8..41be7acbb147 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestDatanodeStateMachine.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/TestDatanodeStateMachine.java @@ -198,8 +198,7 @@ public void testDatanodeStateContext() throws IOException, OzoneConsts.OZONE_SCM_DATANODE_ID_FILE_DEFAULT); idPath.delete(); DatanodeDetails datanodeDetails = getNewDatanodeDetails(); - DatanodeDetails.Port port = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, + DatanodeDetails.Port port = DatanodeDetails.newStandalonePort( OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT_DEFAULT); datanodeDetails.setPort(port); ContainerUtils.writeDatanodeDetailsTo(datanodeDetails, idPath, conf); @@ -325,8 +324,7 @@ public void testDatanodeStateMachineWithIdWriteFail() throws Exception { OzoneConsts.OZONE_SCM_DATANODE_ID_FILE_DEFAULT); idPath.delete(); DatanodeDetails datanodeDetails = getNewDatanodeDetails(); - DatanodeDetails.Port port = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, + DatanodeDetails.Port port = DatanodeDetails.newStandalonePort( OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT_DEFAULT); datanodeDetails.setPort(port); @@ -408,12 +406,9 @@ public void testDatanodeStateMachineWithInvalidConfiguration() } private DatanodeDetails getNewDatanodeDetails() { - DatanodeDetails.Port containerPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 0); - DatanodeDetails.Port ratisPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 0); - DatanodeDetails.Port restPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.Port containerPort = DatanodeDetails.newStandalonePort(0); + DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0); + DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0); DatanodeDetails.Port streamPort = DatanodeDetails.newPort( DatanodeDetails.Port.Name.RATIS_DATASTREAM, 0); return DatanodeDetails.newBuilder() diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestContainerUtils.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestContainerUtils.java index 4f33e833a3cf..f825be46882d 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestContainerUtils.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestContainerUtils.java @@ -38,7 +38,6 @@ import java.nio.charset.StandardCharsets; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.apache.hadoop.hdds.protocol.DatanodeDetails.Port; import static org.apache.hadoop.hdds.protocol.MockDatanodeDetails.randomDatanodeDetails; import static org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.Type.ReadChunk; import static org.apache.hadoop.hdds.scm.protocolPB.ContainerCommandResponseBuilders.getReadChunkResponse; @@ -92,7 +91,7 @@ public void testTarName() throws IOException { public void testDatanodeIDPersistent(@TempDir File tempDir) throws Exception { // Generate IDs for testing DatanodeDetails id1 = randomDatanodeDetails(); - id1.setPort(DatanodeDetails.newPort(Port.Name.STANDALONE, 1)); + id1.setPort(DatanodeDetails.newStandalonePort(1)); assertWriteRead(tempDir, id1); // Add certificate serial id. diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestDatanodeIdYaml.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestDatanodeIdYaml.java index 8a2728681469..1a0401de7e8b 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestDatanodeIdYaml.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/helpers/TestDatanodeIdYaml.java @@ -73,7 +73,7 @@ void testWriteReadBeforeRatisDatastreamPortLayoutVersion(@TempDir File dir) // if no separate admin/server/datastream port, return single Ratis one for // compat assertEquals(read.getPort(DatanodeDetails.Port.Name.RATIS_DATASTREAM), - read.getPort(DatanodeDetails.Port.Name.RATIS)); + read.getRatisPort()); } @Test diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java index 1cbd6ee4706d..a15db18eba1d 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java @@ -546,12 +546,9 @@ static HddsDispatcher createDispatcher(DatanodeDetails dd, UUID scmId, // This method has to be removed once we move scm/TestUtils.java // from server-scm project to container-service or to common project. private static DatanodeDetails randomDatanodeDetails() { - DatanodeDetails.Port containerPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 0); - DatanodeDetails.Port ratisPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 0); - DatanodeDetails.Port restPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.Port containerPort = DatanodeDetails.newStandalonePort(0); + DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0); + DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0); DatanodeDetails.Builder builder = DatanodeDetails.newBuilder(); builder.setUuid(UUID.randomUUID()) .setHostName("localhost") diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java index a3b60aa36dab..2e1e0eafd017 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java @@ -273,12 +273,9 @@ private CloseContainerCommand forceCloseWithoutPipeline() { */ private static DatanodeDetails randomDatanodeDetails() { String ipAddress = "127.0.0.1"; - DatanodeDetails.Port containerPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 0); - DatanodeDetails.Port ratisPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 0); - DatanodeDetails.Port restPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.Port containerPort = DatanodeDetails.newStandalonePort(0); + DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0); + DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0); DatanodeDetails.Builder builder = DatanodeDetails.newBuilder(); builder.setUuid(UUID.randomUUID()) .setHostName("localhost") diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java index 07804c2a20bd..60552e7cc9da 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java @@ -300,12 +300,9 @@ private DatanodeDetails createDatanodeDetails() { random.nextInt(256) + "." + random.nextInt(256) + "." + random .nextInt(256) + "." + random.nextInt(256); - DatanodeDetails.Port containerPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 0); - DatanodeDetails.Port ratisPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 0); - DatanodeDetails.Port restPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.Port containerPort = DatanodeDetails.newStandalonePort(0); + DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0); + DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0); DatanodeDetails.Builder builder = DatanodeDetails.newBuilder(); builder.setUuid(UUID.randomUUID()) .setHostName("localhost") diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestGrpcReplicationService.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestGrpcReplicationService.java index bca98d1e7dcd..dda87cff0df9 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestGrpcReplicationService.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestGrpcReplicationService.java @@ -102,11 +102,9 @@ public void init() throws Exception { .setPersistedOpState(HddsProtos.NodeOperationalState.IN_SERVICE) .setPersistedOpStateExpiry(0); DatanodeDetails.Port containerPort = - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, - OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT_DEFAULT); + DatanodeDetails.newStandalonePort(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT_DEFAULT); DatanodeDetails.Port ratisPort = - DatanodeDetails.newPort(DatanodeDetails.Port.Name.RATIS, - OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT_DEFAULT); + DatanodeDetails.newRatisPort(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT_DEFAULT); DatanodeDetails.Port replicationPort = DatanodeDetails.newPort(DatanodeDetails.Port.Name.REPLICATION, replicationConfig.getPort()); diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/upgrade/TestDataNodeStartupSlvLessThanMlv.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/upgrade/TestDataNodeStartupSlvLessThanMlv.java index e9fef6ecfd62..55bddf2e99a2 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/upgrade/TestDataNodeStartupSlvLessThanMlv.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/upgrade/TestDataNodeStartupSlvLessThanMlv.java @@ -72,12 +72,9 @@ public void testStartupSlvLessThanMlv() throws Exception { } private DatanodeDetails getNewDatanodeDetails() { - DatanodeDetails.Port containerPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 0); - DatanodeDetails.Port ratisPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 0); - DatanodeDetails.Port restPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.Port containerPort = DatanodeDetails.newStandalonePort(0); + DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0); + DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0); return DatanodeDetails.newBuilder() .setUuid(UUID.randomUUID()) .setHostName("localhost") diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java index e13a40e3a75f..375d68dfe32f 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/NodeDecommissionManager.java @@ -215,9 +215,9 @@ private boolean allPortsMatch(List dns) { if (dns.size() < 2) { return true; } - int port = dns.get(0).getPort(DatanodeDetails.Port.Name.RATIS).getValue(); + int port = dns.get(0).getRatisPort().getValue(); for (int i = 1; i < dns.size(); i++) { - if (dns.get(i).getPort(DatanodeDetails.Port.Name.RATIS).getValue() + if (dns.get(i).getRatisPort().getValue() != port) { return false; } 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 e5ab8c09e0c3..12cb37b8409c 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 @@ -237,21 +237,15 @@ public void testNodesCanBeDecommissionedAndRecommissionedMixedPorts() // same IP so we have 3 registered from the same host and 2 distinct ports. DatanodeDetails sourceDN = dns.get(9); int ratisPort = sourceDN - .getPort(DatanodeDetails.Port.Name.RATIS).getValue(); + .getRatisPort().getValue(); DatanodeDetails.Builder builder = DatanodeDetails.newBuilder(); builder.setUuid(UUID.randomUUID()) .setHostName(sourceDN.getHostName()) .setIpAddress(sourceDN.getIpAddress()) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, - sourceDN.getPort(DatanodeDetails.Port.Name.STANDALONE) - .getValue() + 1)) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, - ratisPort + 1)) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, - sourceDN.getPort(DatanodeDetails.Port.Name.REST).getValue() + 1)) + .addPort(DatanodeDetails.newStandalonePort(sourceDN.getStandalonePort() + .getValue() + 1)) + .addPort(DatanodeDetails.newRatisPort(ratisPort + 1)) + .addPort(DatanodeDetails.newRestPort(sourceDN.getRestPort().getValue() + 1)) .setNetworkLocation(sourceDN.getNetworkLocation()); DatanodeDetails extraDN = builder.build(); dns.add(extraDN); @@ -1081,12 +1075,9 @@ private List generateDatanodes() { builder.setUuid(UUID.randomUUID()) .setHostName(multiDn.getHostName()) .setIpAddress(multiDn.getIpAddress()) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 3456)) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 4567)) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 5678)) + .addPort(DatanodeDetails.newStandalonePort(3456)) + .addPort(DatanodeDetails.newRatisPort(4567)) + .addPort(DatanodeDetails.newRestPort(5678)) .setNetworkLocation(multiDn.getNetworkLocation()); DatanodeDetails dn = builder.build(); @@ -1100,16 +1091,9 @@ private List generateDatanodes() { builder.setUuid(UUID.randomUUID()) .setHostName(duplicatePorts.getHostName()) .setIpAddress(duplicatePorts.getIpAddress()) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, - duplicatePorts.getPort(DatanodeDetails.Port.Name.STANDALONE) - .getValue())) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, - duplicatePorts.getPort(DatanodeDetails.Port.Name.RATIS).getValue())) - .addPort(DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, - duplicatePorts.getPort(DatanodeDetails.Port.Name.REST).getValue())) + .addPort(DatanodeDetails.newStandalonePort(duplicatePorts.getStandalonePort().getValue())) + .addPort(DatanodeDetails.newRatisPort(duplicatePorts.getRatisPort().getValue())) + .addPort(DatanodeDetails.newRestPort(duplicatePorts.getRestPort().getValue())) .setNetworkLocation(multiDn.getNetworkLocation()); dn = builder.build(); dns.add(dn); diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java index 2a4d2de9010e..722bb260859c 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelinePlacementPolicy.java @@ -397,9 +397,9 @@ private DatanodeDetails overwriteLocationInNode( .setUuid(datanode.getUuid()) .setHostName(datanode.getHostName()) .setIpAddress(datanode.getIpAddress()) - .addPort(datanode.getPort(DatanodeDetails.Port.Name.STANDALONE)) - .addPort(datanode.getPort(DatanodeDetails.Port.Name.RATIS)) - .addPort(datanode.getPort(DatanodeDetails.Port.Name.REST)) + .addPort(datanode.getStandalonePort()) + .addPort(datanode.getRatisPort()) + .addPort(datanode.getRestPort()) .setNetworkLocation(node.getNetworkLocation()).build(); return result; } diff --git a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/io/TestECBlockOutputStreamEntry.java b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/io/TestECBlockOutputStreamEntry.java index 718e724e5854..10f90544de0e 100644 --- a/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/io/TestECBlockOutputStreamEntry.java +++ b/hadoop-ozone/client/src/test/java/org/apache/hadoop/ozone/client/io/TestECBlockOutputStreamEntry.java @@ -126,7 +126,7 @@ private DatanodeDetails aNode(String ip, String hostName, int port) { .setIpAddress(ip) .setHostName(hostName) .addPort( - DatanodeDetails.newPort(DatanodeDetails.Port.Name.STANDALONE, port)) + DatanodeDetails.newStandalonePort(port)) .build(); } } diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/TestCSMMetrics.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/TestCSMMetrics.java index 3c41c0f19e86..95aeb6490246 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/TestCSMMetrics.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/TestCSMMetrics.java @@ -183,7 +183,7 @@ static void runContainerStateMachineMetrics( static XceiverServerRatis newXceiverServerRatis( DatanodeDetails dn, OzoneConfiguration conf) throws IOException { conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT, - dn.getPort(DatanodeDetails.Port.Name.RATIS).getValue()); + dn.getRatisPort().getValue()); final String dir = testDir.resolve(dn.getUuidString()).toString(); conf.set(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATANODE_STORAGE_DIR, dir); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/metrics/TestContainerMetrics.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/metrics/TestContainerMetrics.java index dd082b4e074e..bc2dcda8e54a 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/metrics/TestContainerMetrics.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/metrics/TestContainerMetrics.java @@ -110,7 +110,7 @@ public void testContainerMetrics() throws Exception { runTestClientServer(pipeline -> CONF .setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, pipeline.getFirstNode() - .getPort(DatanodeDetails.Port.Name.STANDALONE).getValue()), + .getStandalonePort().getValue()), pipeline -> new XceiverClientGrpc(pipeline, CONF), (dn, volumeSet) -> new XceiverServerGrpc(dn, CONF, createDispatcher(dn, volumeSet), null), (dn, p) -> { @@ -237,7 +237,7 @@ static void runTestClientServer( private XceiverServerSpi newXceiverServerRatis(DatanodeDetails dn, MutableVolumeSet volumeSet) throws IOException { CONF.setInt(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT, - dn.getPort(DatanodeDetails.Port.Name.RATIS).getValue()); + dn.getRatisPort().getValue()); final String dir = testDir.resolve(dn.getUuidString()).toString(); CONF.set(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATANODE_STORAGE_DIR, dir); final ContainerDispatcher dispatcher = createDispatcher(dn, diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java index 1c5da04c0a3e..8e72d5e5d988 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestOzoneContainer.java @@ -73,8 +73,7 @@ public void testCreateOzoneContainer( conf.set(OZONE_METADATA_DIRS, ozoneMetaDir.getPath()); conf.set(HDDS_DATANODE_DIR_KEY, hddsNodeDir.getPath()); conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, - pipeline.getFirstNode() - .getPort(DatanodeDetails.Port.Name.STANDALONE).getValue()); + pipeline.getFirstNode().getStandalonePort().getValue()); DatanodeDetails datanodeDetails = randomDatanodeDetails(); container = ContainerTestUtils @@ -106,8 +105,7 @@ void testOzoneContainerStart( conf.set(OZONE_METADATA_DIRS, ozoneMetaDir.getPath()); conf.set(HDDS_DATANODE_DIR_KEY, hddsNodeDir.getPath()); conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, - pipeline.getFirstNode() - .getPort(DatanodeDetails.Port.Name.STANDALONE).getValue()); + pipeline.getFirstNode().getStandalonePort().getValue()); DatanodeDetails datanodeDetails = randomDatanodeDetails(); container = ContainerTestUtils diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestSecureOzoneContainer.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestSecureOzoneContainer.java index d5231911eb6d..262d3026e787 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestSecureOzoneContainer.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/ozoneimpl/TestSecureOzoneContainer.java @@ -131,8 +131,7 @@ void testCreateOzoneContainer(boolean requireToken, boolean hasToken, Pipeline pipeline = MockPipeline.createSingleNodePipeline(); conf.set(HDDS_DATANODE_DIR_KEY, tempFolder.toString()); conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, pipeline - .getFirstNode().getPort(DatanodeDetails.Port.Name.STANDALONE) - .getValue()); + .getFirstNode().getStandalonePort().getValue()); conf.setBoolean(OzoneConfigKeys.HDDS_CONTAINER_IPC_RANDOM_PORT, false); DatanodeDetails dn = MockDatanodeDetails.randomDatanodeDetails(); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/replication/TestContainerReplication.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/replication/TestContainerReplication.java index 08932aa4e373..4e7aeaeef79e 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/replication/TestContainerReplication.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/replication/TestContainerReplication.java @@ -137,7 +137,7 @@ void targetPullsFromWrongService() throws Exception { long containerID = createNewClosedContainer(source); DatanodeDetails invalidPort = new DatanodeDetails(source); invalidPort.setPort(Port.Name.REPLICATION, - source.getPort(Port.Name.STANDALONE).getValue()); + source.getStandalonePort().getValue()); ReplicateContainerCommand cmd = ReplicateContainerCommand.fromSources(containerID, ImmutableList.of(invalidPort)); diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java index b657d103a989..dae2d50bcd64 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestContainerServer.java @@ -109,7 +109,7 @@ public void testClientServer() throws Exception { runTestClientServer(1, (pipeline, conf) -> conf .setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, pipeline.getFirstNode() - .getPort(DatanodeDetails.Port.Name.STANDALONE).getValue()), + .getStandalonePort().getValue()), XceiverClientGrpc::new, (dn, conf) -> new XceiverServerGrpc(datanodeDetails, conf, new TestContainerDispatcher(), caClient), (dn, p) -> { @@ -125,7 +125,7 @@ public void testClientServerRatisGrpc() throws Exception { static XceiverServerRatis newXceiverServerRatis( DatanodeDetails dn, OzoneConfiguration conf) throws IOException { conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT, - dn.getPort(DatanodeDetails.Port.Name.RATIS).getValue()); + dn.getRatisPort().getValue()); final String dir = testDir.resolve(dn.getUuid().toString()).toString(); conf.set(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATANODE_STORAGE_DIR, dir); @@ -222,8 +222,7 @@ public void testClientServerWithContainerDispatcher() throws Exception { UUID.randomUUID(), CONF); runTestClientServer(1, (pipeline, conf) -> conf .setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, - pipeline.getFirstNode() - .getPort(DatanodeDetails.Port.Name.STANDALONE).getValue()), + pipeline.getFirstNode().getStandalonePort().getValue()), XceiverClientGrpc::new, (dn, conf) -> new XceiverServerGrpc(dd, conf, hddsDispatcher, caClient), (dn, p) -> { diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java index 8359a26946b5..af72dae912b3 100644 --- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java +++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/server/TestSecureContainerServer.java @@ -158,7 +158,7 @@ public void testClientServer() throws Exception { runTestClientServer(1, (pipeline, conf) -> conf .setInt(OzoneConfigKeys.HDDS_CONTAINER_IPC_PORT, pipeline.getFirstNode() - .getPort(DatanodeDetails.Port.Name.STANDALONE).getValue()), + .getStandalonePort().getValue()), XceiverClientGrpc::new, (dn, conf) -> new XceiverServerGrpc(dd, conf, hddsDispatcher, caClient), (dn, p) -> { }, (p) -> { }); @@ -202,7 +202,7 @@ public void testClientServerRatisGrpc() throws Exception { XceiverServerRatis newXceiverServerRatis( DatanodeDetails dn, OzoneConfiguration conf) throws IOException { conf.setInt(OzoneConfigKeys.HDDS_CONTAINER_RATIS_IPC_PORT, - dn.getPort(DatanodeDetails.Port.Name.RATIS).getValue()); + dn.getRatisPort().getValue()); conf.setBoolean(OzoneConfigKeys.HDDS_CONTAINER_RATIS_DATASTREAM_ENABLED, true); conf.setBoolean( diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java index 68a8ee7fc4bc..bc7c0120446f 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneClientAdapterImpl.java @@ -44,7 +44,6 @@ import org.apache.hadoop.hdds.client.StandaloneReplicationConfig; import org.apache.hadoop.hdds.conf.ConfigurationSource; import org.apache.hadoop.hdds.conf.OzoneConfiguration; -import org.apache.hadoop.hdds.protocol.DatanodeDetails; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; import org.apache.hadoop.hdds.scm.OzoneClientConfig; import org.apache.hadoop.hdds.scm.XceiverClientFactory; @@ -586,8 +585,7 @@ private BlockLocation[] getBlockLocations(OzoneFileStatus fileStatus) { omKeyLocationInfo.getPipeline().getNodes() .forEach(dn -> { hostList.add(dn.getHostName()); - int port = dn.getPort( - DatanodeDetails.Port.Name.STANDALONE).getValue(); + int port = dn.getStandalonePort().getValue(); if (port == 0) { port = configuredDnPort; } diff --git a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java index 41e47d91aa9a..46602068ccd0 100644 --- a/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java +++ b/hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneClientAdapterImpl.java @@ -50,7 +50,6 @@ import org.apache.hadoop.hdds.client.StandaloneReplicationConfig; import org.apache.hadoop.hdds.conf.ConfigurationSource; import org.apache.hadoop.hdds.conf.OzoneConfiguration; -import org.apache.hadoop.hdds.protocol.DatanodeDetails; import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos; import org.apache.hadoop.hdds.protocol.proto.HddsProtos; import org.apache.hadoop.hdds.scm.OzoneClientConfig; @@ -1076,8 +1075,7 @@ private BlockLocation[] getBlockLocations(OzoneFileStatus fileStatus) { omKeyLocationInfo.getPipeline().getNodes() .forEach(dn -> { hostList.add(dn.getHostName()); - int port = dn.getPort( - DatanodeDetails.Port.Name.STANDALONE).getValue(); + int port = dn.getStandalonePort().getValue(); if (port == 0) { port = configuredDnPort; } diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java index 2b4faeac9230..a86b4789fef5 100644 --- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java +++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java @@ -463,9 +463,9 @@ private DatanodeDetails randomDatanodeDetails(ConfigurationSource config) details.setCurrentVersion(DatanodeVersion.CURRENT_VERSION); details.setHostName(HddsUtils.getHostName(config)); details.setIpAddress(randomIp()); - details.setPort(DatanodeDetails.Port.Name.STANDALONE, 0); - details.setPort(DatanodeDetails.Port.Name.RATIS, 0); - details.setPort(DatanodeDetails.Port.Name.REST, 0); + details.setStandalonePort(0); + details.setRatisPort(0); + details.setRestPort(0); details.setVersion(HDDS_VERSION_INFO.getVersion()); details.setSetupTime(Time.now()); details.setRevision(HDDS_VERSION_INFO.getRevision()); diff --git a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java index d62ad1d79c1e..6dc0efae0d2f 100644 --- a/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java +++ b/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java @@ -867,12 +867,9 @@ private static DatanodeDetails createRandomDatanodeDetails() { RANDOM.nextInt(256) + "." + RANDOM.nextInt(256) + "." + RANDOM .nextInt(256) + "." + RANDOM.nextInt(256); - DatanodeDetails.Port containerPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.STANDALONE, 0); - DatanodeDetails.Port ratisPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.RATIS, 0); - DatanodeDetails.Port restPort = DatanodeDetails.newPort( - DatanodeDetails.Port.Name.REST, 0); + DatanodeDetails.Port containerPort = DatanodeDetails.newStandalonePort(0); + DatanodeDetails.Port ratisPort = DatanodeDetails.newRatisPort(0); + DatanodeDetails.Port restPort = DatanodeDetails.newRestPort(0); DatanodeDetails.Builder builder = DatanodeDetails.newBuilder(); builder.setUuid(uuid).setHostName("localhost") .setIpAddress(ipAddress)