This is an automated email from the ASF dual-hosted git repository.

errose28 pushed a commit to branch HDDS-14496-zdu
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/HDDS-14496-zdu by this push:
     new 19635689a53 HDDS-16153. DatanodeDetails should use HDDSVersion instead 
of int (#10994)
19635689a53 is described below

commit 19635689a533c4a55a8cbd3fd5e663d9e9d76d2a
Author: Ethan Rose <[email protected]>
AuthorDate: Mon Aug 17 16:10:42 2026 -0400

    HDDS-16153. DatanodeDetails should use HDDSVersion instead of int (#10994)
---
 .../hadoop/hdds/protocol/DatanodeDetails.java      | 26 +++++++++++-----------
 .../hadoop/hdds/protocol/MockDatanodeDetails.java  |  4 +++-
 .../hadoop/hdds/protocol/TestDatanodeDetails.java  | 13 +++++------
 .../apache/hadoop/ozone/HddsDatanodeService.java   | 10 +++++----
 .../container/common/helpers/DatanodeIdYaml.java   |  9 ++++----
 .../common/helpers/TestContainerUtils.java         |  3 ++-
 ...lockLocationProtocolServerSideTranslatorPB.java | 14 +++++-------
 .../hdds/scm/cli/datanode/BasicDatanodeInfo.java   |  2 +-
 .../hadoop/hdds/scm/TestContainerOperations.java   |  3 ++-
 .../TestDNDataDistributionFinalization.java        |  2 +-
 .../TestScmDataDistributionFinalization.java       |  2 +-
 .../hadoop/hdds/upgrade/TestScmHAFinalization.java |  4 ++--
 .../client/rpc/TestBlockDataStreamOutput.java      |  7 +++---
 .../ozone/om/service/TestBlockDeletionService.java |  2 +-
 .../hadoop/ozone/UniformDatanodesFactory.java      |  9 ++++----
 .../hadoop/ozone/freon/DatanodeSimulator.java      |  6 ++---
 16 files changed, 60 insertions(+), 56 deletions(-)

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 e674931539c..27da3567310 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
@@ -87,8 +87,8 @@ public class DatanodeDetails extends NodeImpl implements 
Comparable<DatanodeDeta
   private String revision;
   private volatile HddsProtos.NodeOperationalState persistedOpState;
   private volatile long persistedOpStateExpiryEpochSec;
-  private int initialVersion;
-  private int currentVersion;
+  private HDDSVersion initialVersion;
+  private HDDSVersion currentVersion;
 
   private DatanodeDetails(Builder b) {
     super(b.hostName, b.networkLocation, NetConstants.NODE_COST_DEFAULT);
@@ -463,10 +463,10 @@ public static DatanodeDetails.Builder newBuilder(
           datanodeDetailsProto.getPersistedOpStateExpiry());
     }
     if (datanodeDetailsProto.hasCurrentVersion()) {
-      builder.setCurrentVersion(datanodeDetailsProto.getCurrentVersion());
+      
builder.setCurrentVersion(HDDSVersion.deserialize(datanodeDetailsProto.getCurrentVersion()));
     } else {
       // fallback to version 1 if not present
-      
builder.setCurrentVersion(HDDSVersion.SEPARATE_RATIS_PORTS_AVAILABLE.serialize());
+      builder.setCurrentVersion(HDDSVersion.SEPARATE_RATIS_PORTS_AVAILABLE);
     }
     return builder;
   }
@@ -603,7 +603,7 @@ public HddsProtos.DatanodeDetailsProto.Builder 
toProtoBuilder(
       }
     }
 
-    builder.setCurrentVersion(versionOverride != null ? 
versionOverride.serialize() : currentVersion);
+    builder.setCurrentVersion(versionOverride != null ? 
versionOverride.serialize() : currentVersion.serialize());
 
     return builder;
   }
@@ -635,22 +635,22 @@ public ExtendedDatanodeDetailsProto 
getExtendedProtoBufMessage() {
    * Note: Datanode initial version is not passed to the client due to no use 
case. See HDDS-9884
    * @return the version this datanode was initially created with
    */
-  public int getInitialVersion() {
+  public HDDSVersion getInitialVersion() {
     return initialVersion;
   }
 
-  public void setInitialVersion(int initialVersion) {
+  public void setInitialVersion(HDDSVersion initialVersion) {
     this.initialVersion = initialVersion;
   }
 
   /**
    * @return the version this datanode was last started with
    */
-  public int getCurrentVersion() {
+  public HDDSVersion getCurrentVersion() {
     return currentVersion;
   }
 
-  public void setCurrentVersion(int currentVersion) {
+  public void setCurrentVersion(HDDSVersion currentVersion) {
     this.currentVersion = currentVersion;
   }
 
@@ -734,8 +734,8 @@ public static final class Builder {
     private String revision;
     private HddsProtos.NodeOperationalState persistedOpState;
     private long persistedOpStateExpiryEpochSec = 0;
-    private int initialVersion;
-    private int currentVersion = HDDSVersion.SOFTWARE_VERSION.serialize();
+    private HDDSVersion initialVersion = HDDSVersion.DEFAULT_VERSION;
+    private HDDSVersion currentVersion = HDDSVersion.DEFAULT_VERSION;
 
     /**
      * Default private constructor. To create Builder instance use
@@ -951,12 +951,12 @@ public Builder setPersistedOpStateExpiry(long expiry) {
       return this;
     }
 
-    public Builder setInitialVersion(int v) {
+    public Builder setInitialVersion(HDDSVersion v) {
       this.initialVersion = v;
       return this;
     }
 
-    public Builder setCurrentVersion(int v) {
+    public Builder setCurrentVersion(HDDSVersion v) {
       this.currentVersion = v;
       return this;
     }
diff --git 
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java
 
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java
index 8d1424248f8..bb6847d5a89 100644
--- 
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java
+++ 
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/MockDatanodeDetails.java
@@ -21,6 +21,7 @@
 
 import java.util.Random;
 import java.util.concurrent.ThreadLocalRandom;
+import org.apache.hadoop.hdds.HDDSVersion;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
 import org.apache.ozone.test.GenericTestUtils;
 
@@ -95,7 +96,8 @@ public static DatanodeDetails 
createDatanodeDetails(DatanodeID id,
         .setIpAddress(ipAddress)
         .setNetworkLocation(networkLocation)
         .setPersistedOpState(HddsProtos.NodeOperationalState.IN_SERVICE)
-        .setPersistedOpStateExpiry(0);
+        .setPersistedOpStateExpiry(0)
+        .setCurrentVersion(HDDSVersion.SOFTWARE_VERSION);
 
     for (DatanodeDetails.Port.Name name : ALL_PORTS) {
       dn.addPort(DatanodeDetails.newPort(name, port));
diff --git 
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/TestDatanodeDetails.java
 
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/TestDatanodeDetails.java
index 6401067c85b..6af228d52d3 100644
--- 
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/TestDatanodeDetails.java
+++ 
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/protocol/TestDatanodeDetails.java
@@ -59,11 +59,11 @@ void testRequiredPortsProto() {
     Set<Port.Name> requiredPorts = Stream.of(Port.Name.STANDALONE, 
Port.Name.RATIS)
         .collect(Collectors.toSet());
     HddsProtos.DatanodeDetailsProto proto =
-        
subject.toProto(ClientVersion.deserialize(subject.getCurrentVersion()), 
requiredPorts);
+        subject.toProto(ClientVersion.CURRENT, requiredPorts);
     assertPorts(proto, ImmutableSet.copyOf(requiredPorts));
 
     HddsProtos.DatanodeDetailsProto ioPortProto =
-        
subject.toProto(ClientVersion.deserialize(subject.getCurrentVersion()), 
Name.IO_PORTS);
+        subject.toProto(ClientVersion.CURRENT, Name.IO_PORTS);
     assertPorts(ioPortProto, ImmutableSet.copyOf(Name.IO_PORTS));
   }
 
@@ -79,14 +79,13 @@ public void testNewBuilderCurrentVersion() {
     protoBuilder.clearCurrentVersion();
     DatanodeDetails dn2 = 
DatanodeDetails.newBuilder(protoBuilder.build()).build();
     assertEquals(HDDSVersion.SEPARATE_RATIS_PORTS_AVAILABLE,
-        HDDSVersion.deserialize(dn2.getCurrentVersion()));
+        dn2.getCurrentVersion());
 
     // test that if the current version is set, it is used
-    protoBuilder =
-        dn.toProtoBuilder(DEFAULT_VERSION, requiredPorts);
+    protoBuilder = dn.toProtoBuilder(DEFAULT_VERSION, requiredPorts);
+    
protoBuilder.setCurrentVersion(HDDSVersion.COMBINED_PUTBLOCK_WRITECHUNK_RPC.serialize());
     DatanodeDetails dn3 = 
DatanodeDetails.newBuilder(protoBuilder.build()).build();
-    assertEquals(HDDSVersion.SOFTWARE_VERSION,
-        HDDSVersion.deserialize(dn3.getCurrentVersion()));
+    assertEquals(HDDSVersion.COMBINED_PUTBLOCK_WRITECHUNK_RPC, 
dn3.getCurrentVersion());
   }
 
   public static void assertPorts(HddsProtos.DatanodeDetailsProto dn,
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
index 8a6e2f66c80..274de843b9b 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/HddsDatanodeService.java
@@ -836,14 +836,16 @@ private String reconfigScmNodes(String value) {
   /**
    * Returns the initial version of the datanode.
    */
-  private int getInitialVersion() {
-    return conf.getInt(TESTING_DATANODE_VERSION_INITIAL, 
HDDSVersion.SOFTWARE_VERSION.serialize());
+  private HDDSVersion getInitialVersion() {
+    return HDDSVersion.deserialize(
+        conf.getInt(TESTING_DATANODE_VERSION_INITIAL, 
HDDSVersion.SOFTWARE_VERSION.serialize()));
   }
 
   /**
    * Returns the current version of the datanode.
    */
-  private int getCurrentVersion() {
-    return conf.getInt(TESTING_DATANODE_VERSION_CURRENT, 
HDDSVersion.SOFTWARE_VERSION.serialize());
+  private HDDSVersion getCurrentVersion() {
+    return HDDSVersion.deserialize(
+        conf.getInt(TESTING_DATANODE_VERSION_CURRENT, 
HDDSVersion.SOFTWARE_VERSION.serialize()));
   }
 }
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/DatanodeIdYaml.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/DatanodeIdYaml.java
index cf9b1a68e09..00d232adc18 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/DatanodeIdYaml.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/helpers/DatanodeIdYaml.java
@@ -24,6 +24,7 @@
 import java.util.Map;
 import java.util.UUID;
 import org.apache.commons.collections4.MapUtils;
+import org.apache.hadoop.hdds.HDDSVersion;
 import org.apache.hadoop.hdds.conf.ConfigurationSource;
 import org.apache.hadoop.hdds.protocol.DatanodeDetails;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -109,8 +110,8 @@ public static DatanodeDetails readDatanodeIdFile(File path)
         }
       }
 
-      builder.setInitialVersion(datanodeDetailsYaml.getInitialVersion())
-          .setCurrentVersion(datanodeDetailsYaml.getCurrentVersion());
+      
builder.setInitialVersion(HDDSVersion.deserialize(datanodeDetailsYaml.getInitialVersion()))
+          
.setCurrentVersion(HDDSVersion.deserialize(datanodeDetailsYaml.getCurrentVersion()));
 
       datanodeDetails = builder.build();
     }
@@ -248,7 +249,7 @@ private static DatanodeDetailsYaml getDatanodeDetailsYaml(
         persistedOpString,
         datanodeDetails.getPersistedOpStateExpiryEpochSec(),
         
VersionedDatanodeFeatures.DatanodePorts.getPortsToPersist(datanodeDetails, 
conf),
-        datanodeDetails.getInitialVersion(),
-        datanodeDetails.getCurrentVersion());
+        datanodeDetails.getInitialVersion().serialize(),
+        datanodeDetails.getCurrentVersion().serialize());
   }
 }
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 a2ef8f53798..9735c5eeb13 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
@@ -43,6 +43,7 @@
 import java.nio.file.Files;
 import java.util.UUID;
 import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hdds.HDDSVersion;
 import org.apache.hadoop.hdds.HddsConfigKeys;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.hdds.fs.SpaceUsageSource;
@@ -152,7 +153,7 @@ public void testDatanodeIDPersistent(@TempDir File tempDir) 
throws Exception {
       }
       assertDetailsEquals(id1, 
ContainerUtils.readDatanodeDetailsFrom(protoFile, conf));
 
-      id1.setInitialVersion(1);
+      id1.setInitialVersion(HDDSVersion.SEPARATE_RATIS_PORTS_AVAILABLE);
       assertWriteRead(tempDir, id1);
     }
   }
diff --git 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/protocol/TestScmBlockLocationProtocolServerSideTranslatorPB.java
 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/protocol/TestScmBlockLocationProtocolServerSideTranslatorPB.java
index df81ddd688b..e0cd8d389b0 100644
--- 
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/protocol/TestScmBlockLocationProtocolServerSideTranslatorPB.java
+++ 
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/protocol/TestScmBlockLocationProtocolServerSideTranslatorPB.java
@@ -68,9 +68,6 @@
  */
 class TestScmBlockLocationProtocolServerSideTranslatorPB {
 
-  /** The version each source datanode reports as its own software version. */
-  private static final int SOFTWARE_VERSION = 
HDDSVersion.SOFTWARE_VERSION.serialize();
-
   private ScmBlockLocationProtocol impl;
   private NodeManager nodeManager;
   private ScmVersionManager versionManager;
@@ -87,7 +84,7 @@ void setUp() throws Exception {
     nodes = new ArrayList<>();
     for (int i = 0; i < 3; i++) {
       DatanodeDetails dn = randomDatanodeDetails();
-      dn.setCurrentVersion(SOFTWARE_VERSION);
+      dn.setCurrentVersion(HDDSVersion.SOFTWARE_VERSION);
       nodes.add(dn);
     }
 
@@ -174,7 +171,7 @@ void preFinalizedClusterClampsClientVersionDown() throws 
Exception {
 
   @Test
   void finalizedClusterForwardsRealVersion() throws Exception {
-    assertAllMembersHaveVersion(SOFTWARE_VERSION, allocateAndGetMembers());
+    assertAllMembersHaveVersion(HDDSVersion.SOFTWARE_VERSION.serialize(), 
allocateAndGetMembers());
   }
 
   @Test
@@ -235,7 +232,7 @@ void blocksOnDistinctPipelinesGetOwnVersion() throws 
Exception {
     List<DatanodeDetails> otherNodes = new ArrayList<>();
     for (int i = 0; i < 3; i++) {
       DatanodeDetails dn = randomDatanodeDetails();
-      dn.setCurrentVersion(SOFTWARE_VERSION);
+      dn.setCurrentVersion(HDDSVersion.SOFTWARE_VERSION);
       setDatanodeApparentVersion(dn, HDDSVersion.STREAM_BLOCK_SUPPORT);
       otherNodes.add(dn);
     }
@@ -247,7 +244,8 @@ void blocksOnDistinctPipelinesGetOwnVersion() throws 
Exception {
     AllocateScmBlockResponseProto response = allocate(2);
 
     assertEquals(2, response.getBlocksCount());
-    assertAllMembersHaveVersion(SOFTWARE_VERSION, 
response.getBlocks(0).getPipeline().getMembersList());
+    assertAllMembersHaveVersion(HDDSVersion.SOFTWARE_VERSION.serialize(),
+        response.getBlocks(0).getPipeline().getMembersList());
     assertEquals(otherNodes.size(), 
response.getBlocks(1).getPipeline().getMembersCount());
     for (DatanodeDetailsProto member : 
response.getBlocks(1).getPipeline().getMembersList()) {
       assertEquals(HDDSVersion.STREAM_BLOCK_SUPPORT.serialize(), 
member.getCurrentVersion());
@@ -263,7 +261,7 @@ void doesNotMutateSourcePipelineDatanodes() throws 
Exception {
     // The in-memory DatanodeDetails (shared with SCM internal state) must keep
     // their real software version; only the outgoing proto is overridden.
     for (DatanodeDetails dn : nodes) {
-      assertEquals(SOFTWARE_VERSION, dn.getCurrentVersion());
+      assertEquals(HDDSVersion.SOFTWARE_VERSION, dn.getCurrentVersion());
     }
   }
 }
diff --git 
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/BasicDatanodeInfo.java
 
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/BasicDatanodeInfo.java
index a439494cdd4..c3bfaaacd2c 100644
--- 
a/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/BasicDatanodeInfo.java
+++ 
b/hadoop-ozone/cli-admin/src/main/java/org/apache/hadoop/hdds/scm/cli/datanode/BasicDatanodeInfo.java
@@ -120,7 +120,7 @@ public long getSetupTime() {
 
   @JsonProperty(index = 30)
   public int getCurrentVersion() {
-    return dn.getCurrentVersion();
+    return dn.getCurrentVersion().serialize();
   }
 
   @JsonProperty(index = 35)
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestContainerOperations.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestContainerOperations.java
index 8f46d73e17b..1d0bdbea156 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestContainerOperations.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/TestContainerOperations.java
@@ -33,6 +33,7 @@
 import java.util.List;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.RandomUtils;
+import org.apache.hadoop.hdds.HDDSVersion;
 import org.apache.hadoop.hdds.client.BlockID;
 import org.apache.hadoop.hdds.client.ECReplicationConfig;
 import org.apache.hadoop.hdds.client.RatisReplicationConfig;
@@ -169,7 +170,7 @@ public void testDatanodeUsageInfoCompatibility() throws 
IOException {
         .getScmNodeManager()
         .getAllNodes()
         .get(0);
-    dn.setCurrentVersion(0);
+    dn.setCurrentVersion(HDDSVersion.DEFAULT_VERSION);
 
     List<HddsProtos.DatanodeUsageInfoProto> usageInfoList =
         storageClient.getDatanodeUsageInfo(
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java
index a33af09e11f..38738fcc8e7 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java
@@ -100,7 +100,7 @@ public void init(OzoneConfiguration conf) throws Exception {
         .setNumOfOzoneManagers(1)
         .setNumDatanodes(NUM_DATANODES)
         .setDatanodeFactory(UniformDatanodesFactory.newBuilder()
-            .setApparentVersion(HDDSLayoutFeature.INITIAL_VERSION.serialize())
+            .setApparentVersion(HDDSLayoutFeature.INITIAL_VERSION)
             .build());
     this.cluster = clusterBuilder.build();
 
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java
index 81fb21ebcde..b3264137626 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java
@@ -127,7 +127,7 @@ public void init(OzoneConfiguration conf) throws Exception {
         .setSCMConfigurator(configurator)
         .setNumDatanodes(NUM_DATANODES)
         .setDatanodeFactory(UniformDatanodesFactory.newBuilder()
-            .setApparentVersion(HDDSLayoutFeature.INITIAL_VERSION.serialize())
+            .setApparentVersion(HDDSLayoutFeature.INITIAL_VERSION)
             .build());
     this.cluster = clusterBuilder.build();
 
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmHAFinalization.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmHAFinalization.java
index cbf3bcece0d..b77741519f3 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmHAFinalization.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmHAFinalization.java
@@ -75,7 +75,7 @@ public void init(OzoneConfiguration conf, int 
numInactiveSCMs) throws Exception
         .setSCMConfigurator(configurator)
         .setNumDatanodes(NUM_DATANODES)
         .setDatanodeFactory(UniformDatanodesFactory.newBuilder()
-            .setApparentVersion(HDDSLayoutFeature.INITIAL_VERSION.serialize())
+            .setApparentVersion(HDDSLayoutFeature.INITIAL_VERSION)
             .build());
     this.cluster = clusterBuilder.build();
 
@@ -104,7 +104,7 @@ public void 
testFinalizedDatanodesShutDownWithPrefinalizedScm() throws Exception
         .setNumOfOzoneManagers(1)
         .setNumDatanodes(NUM_DATANODES)
         .setDatanodeFactory(UniformDatanodesFactory.newBuilder()
-            .setApparentVersion(HDDSVersion.SOFTWARE_VERSION.serialize())
+            .setApparentVersion(HDDSVersion.SOFTWARE_VERSION)
             .build());
 
     // Prevent terminateDatanode() from calling System.exit(1) and killing the 
test JVM.
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBlockDataStreamOutput.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBlockDataStreamOutput.java
index 6be6a99a658..97958c324e5 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBlockDataStreamOutput.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/TestBlockDataStreamOutput.java
@@ -135,7 +135,7 @@ static MiniOzoneCluster createCluster() throws IOException,
         .setNumDatanodes(5)
         .setDatanodeFactory(UniformDatanodesFactory.newBuilder()
             .setCurrentVersion(DN_OLD_VERSION)
-            .setApparentVersion(HDDSVersion.SOFTWARE_VERSION.serialize())
+            .setApparentVersion(HDDSVersion.SOFTWARE_VERSION)
             .build())
         .build();
     cluster.waitForPipelineTobeReady(HddsProtos.ReplicationFactor.THREE,
@@ -343,7 +343,7 @@ public void testDatanodeVersion(boolean flushDelay) throws 
Exception {
       for (HddsDatanodeService dn : dns) {
         DatanodeDetails details = dn.getDatanodeDetails();
         assertEquals(DN_OLD_VERSION,
-            HDDSVersion.deserialize(details.getCurrentVersion()));
+            details.getCurrentVersion());
       }
 
       String keyName = getKeyName();
@@ -356,8 +356,7 @@ public void testDatanodeVersion(boolean flushDelay) throws 
Exception {
       // pipeline, which here is the software version the datanodes have 
finalized to.
       List<DatanodeDetails> streamDnDetails = stream.getPipeline().getNodes();
       for (DatanodeDetails details : streamDnDetails) {
-        assertEquals(HDDSVersion.SOFTWARE_VERSION,
-            HDDSVersion.deserialize(details.getCurrentVersion()));
+        assertEquals(HDDSVersion.SOFTWARE_VERSION, 
details.getCurrentVersion());
       }
     }
   }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java
index 0c3bc3b37bc..a0fd40b5163 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java
@@ -93,7 +93,7 @@ public static void init() throws Exception {
     cluster = MiniOzoneCluster.newBuilder(conf)
         .setNumDatanodes(9)
         .setDatanodeFactory(UniformDatanodesFactory.newBuilder()
-            .setApparentVersion(HBASE_SUPPORT.serialize()).build())
+            .setApparentVersion(HBASE_SUPPORT).build())
         .build();
     cluster.waitForClusterToBeReady();
     scmClient = cluster.getStorageContainerLocationClient();
diff --git 
a/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/UniformDatanodesFactory.java
 
b/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/UniformDatanodesFactory.java
index 411574d57b1..d1e90d8c346 100644
--- 
a/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/UniformDatanodesFactory.java
+++ 
b/hadoop-ozone/mini-cluster/src/main/java/org/apache/hadoop/ozone/UniformDatanodesFactory.java
@@ -45,6 +45,7 @@
 import java.util.Objects;
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.hadoop.hdds.ComponentVersion;
 import org.apache.hadoop.hdds.HDDSVersion;
 import org.apache.hadoop.hdds.conf.ConfigurationTarget;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
@@ -60,7 +61,7 @@ public class UniformDatanodesFactory implements 
MiniOzoneCluster.DatanodeFactory
 
   private final int numDataVolumes;
   private final String reservedSpace;
-  private final Integer apparentVersion;
+  private final ComponentVersion apparentVersion;
   private final HDDSVersion currentVersion;
 
   protected UniformDatanodesFactory(Builder builder) {
@@ -104,7 +105,7 @@ public OzoneConfiguration apply(OzoneConfiguration conf) 
throws IOException {
 
     if (apparentVersion != null) {
       DatanodeStorage layoutStorage = new DatanodeStorage(
-          dnConf, UUID.randomUUID().toString(), apparentVersion);
+          dnConf, UUID.randomUUID().toString(), apparentVersion.serialize());
       layoutStorage.initialize();
     }
 
@@ -140,7 +141,7 @@ public static class Builder {
 
     private int numDataVolumes = 1;
     private String reservedSpace;
-    private Integer apparentVersion;
+    private ComponentVersion apparentVersion;
     private HDDSVersion currentVersion;
 
     /**
@@ -164,7 +165,7 @@ public Builder setReservedSpace(String reservedSpace) {
       return this;
     }
 
-    public Builder setApparentVersion(int apparentVersion) {
+    public Builder setApparentVersion(ComponentVersion apparentVersion) {
       this.apparentVersion = apparentVersion;
       return this;
     }
diff --git 
a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
index 4e46d68d8a0..183c80668f8 100644
--- 
a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
+++ 
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
@@ -461,8 +461,8 @@ private DatanodeDetails 
randomDatanodeDetails(ConfigurationSource config)
     DatanodeDetails details = DatanodeDetails.newBuilder()
         .setID(DatanodeID.randomID())
         .build();
-    details.setInitialVersion(HDDSVersion.SOFTWARE_VERSION.serialize());
-    details.setCurrentVersion(HDDSVersion.SOFTWARE_VERSION.serialize());
+    details.setInitialVersion(HDDSVersion.SOFTWARE_VERSION);
+    details.setCurrentVersion(HDDSVersion.SOFTWARE_VERSION);
     details.setHostName(HddsUtils.getHostName(config));
     details.setIpAddress(randomIp());
     details.setStandalonePort(0);
@@ -471,7 +471,7 @@ private DatanodeDetails 
randomDatanodeDetails(ConfigurationSource config)
     details.setVersion(HDDS_VERSION_INFO.getVersion());
     details.setSetupTime(Time.now());
     details.setRevision(HDDS_VERSION_INFO.getRevision());
-    details.setCurrentVersion(HDDSVersion.SOFTWARE_VERSION.serialize());
+    details.setCurrentVersion(HDDSVersion.SOFTWARE_VERSION);
     return details;
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to