summaryrefslogtreecommitdiff
path: root/hadoop-hdds/container-service/src/main/java/org/apache
diff options
context:
space:
mode:
authorNanda kumar <nanda@apache.org>2018-04-13 00:47:38 +0530
committerOwen O'Malley <omalley@apache.org>2018-04-26 05:36:04 -0700
commitd5a8e602565228a082ddd820aaa6f3d8acfa99ca (patch)
tree1ca72f6463f71a359e8bf101461ed8f0ebc4089d /hadoop-hdds/container-service/src/main/java/org/apache
parent51459d435161e09658802c42933f73b27d39ea0e (diff)
HDFS-13413. Ozone: ClusterId and DatanodeUuid should be marked mandatory fields in SCMRegisteredCmdResponseProto. Contributed by Shashikant Banerjee.
Diffstat (limited to 'hadoop-hdds/container-service/src/main/java/org/apache')
-rw-r--r--hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/RegisterEndpointTask.java8
-rw-r--r--hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/protocol/commands/RegisteredCommand.java6
2 files changed, 10 insertions, 4 deletions
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 de186a7ba6..ca3bef0b35 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());
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 a7e81d8a9e..593b84b1ea 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());
}
}