diff options
author | Nanda kumar <nanda@apache.org> | 2018-04-13 00:47:38 +0530 |
---|---|---|
committer | Owen O'Malley <omalley@apache.org> | 2018-04-26 05:36:04 -0700 |
commit | d5a8e602565228a082ddd820aaa6f3d8acfa99ca (patch) | |
tree | 1ca72f6463f71a359e8bf101461ed8f0ebc4089d /hadoop-hdds/container-service/src/main/java/org/apache | |
parent | 51459d435161e09658802c42933f73b27d39ea0e (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')
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()); } } |