Repository: hadoop
Updated Branches:
  refs/heads/HDFS-7240 dd43835b3 -> c36a850af


HDFS-13413. Ozone: ClusterId and DatanodeUuid should be marked mandatory fields 
in SCMRegisteredCmdResponseProto. Contributed by Shashikant Banerjee.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c36a850a
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c36a850a
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c36a850a

Branch: refs/heads/HDFS-7240
Commit: c36a850af5f554f210010e7fb8039953de283746
Parents: dd43835
Author: Nanda kumar <na...@apache.org>
Authored: Fri Apr 13 00:47:38 2018 +0530
Committer: Nanda kumar <na...@apache.org>
Committed: Fri Apr 13 00:47:38 2018 +0530

----------------------------------------------------------------------
 .../common/states/endpoint/RegisterEndpointTask.java         | 8 ++++++++
 .../hadoop/ozone/protocol/commands/RegisteredCommand.java    | 6 ++----
 .../src/main/proto/StorageContainerDatanodeProtocol.proto    | 4 ++--
 3 files changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/c36a850a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/RegisterEndpointTask.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/RegisterEndpointTask.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/RegisterEndpointTask.java
index de186a7..ca3bef0 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/RegisterEndpointTask.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/RegisterEndpointTask.java
@@ -17,6 +17,8 @@
 package org.apache.hadoop.ozone.container.common.states.endpoint;
 
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hdds.scm.ScmConfigKeys;
 import org.apache.hadoop.hdds.protocol.DatanodeDetails;
@@ -28,6 +30,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 
@@ -98,6 +101,11 @@ public final class RegisterEndpointTask implements
       SCMRegisteredCmdResponseProto response = rpcEndPoint.getEndPoint()
           .register(datanodeDetails.getProtoBufMessage(),
               conf.getStrings(ScmConfigKeys.OZONE_SCM_NAMES));
+      Preconditions.checkState(UUID.fromString(response.getDatanodeUUID())
+              .equals(datanodeDetails.getUuid()),
+          "Unexpected datanode ID in the response.");
+      Preconditions.checkState(!StringUtils.isBlank(response.getClusterID()),
+          "Invalid cluster ID in the response.");
       if (response.hasHostname() && response.hasIpAddress()) {
         datanodeDetails.setHostName(response.getHostname());
         datanodeDetails.setIpAddress(response.getIpAddress());

http://git-wip-us.apache.org/repos/asf/hadoop/blob/c36a850a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/RegisteredCommand.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/RegisteredCommand.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/RegisteredCommand.java
index a7e81d8..593b84b 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/RegisteredCommand.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/RegisteredCommand.java
@@ -162,13 +162,11 @@ public class RegisteredCommand extends
       Preconditions.checkNotNull(response);
       if (response.hasHostname() && response.hasIpAddress()) {
         return new RegisteredCommand(response.getErrorCode(),
-            response.hasDatanodeUUID() ? response.getDatanodeUUID() : "",
-            response.hasClusterID() ? response.getClusterID() : "",
+            response.getDatanodeUUID(), response.getClusterID(),
             response.getHostname(), response.getIpAddress());
       } else {
         return new RegisteredCommand(response.getErrorCode(),
-            response.hasDatanodeUUID() ? response.getDatanodeUUID() : "",
-            response.hasClusterID() ? response.getClusterID() : "");
+            response.getDatanodeUUID(), response.getClusterID());
       }
     }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/c36a850a/hadoop-hdds/container-service/src/main/proto/StorageContainerDatanodeProtocol.proto
----------------------------------------------------------------------
diff --git 
a/hadoop-hdds/container-service/src/main/proto/StorageContainerDatanodeProtocol.proto
 
b/hadoop-hdds/container-service/src/main/proto/StorageContainerDatanodeProtocol.proto
index e81310f..03b85e5 100644
--- 
a/hadoop-hdds/container-service/src/main/proto/StorageContainerDatanodeProtocol.proto
+++ 
b/hadoop-hdds/container-service/src/main/proto/StorageContainerDatanodeProtocol.proto
@@ -178,8 +178,8 @@ message SCMRegisteredCmdResponseProto {
     errorNodeNotPermitted = 2;
   }
   required ErrorCode errorCode = 2;
-  optional string datanodeUUID = 3;
-  optional string clusterID = 4;
+  required string datanodeUUID = 3;
+  required string clusterID = 4;
   optional SCMNodeAddressList addressList = 5;
   optional string hostname = 6;
   optional string ipAddress = 7;


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to