You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by ad...@apache.org on 2022/03/30 08:02:29 UTC
[ozone] branch master updated: HDDS-6429. getContainerReplicas should respect client version (#3231)
This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 0ec6005 HDDS-6429. getContainerReplicas should respect client version (#3231)
0ec6005 is described below
commit 0ec6005ce7babd0b27ff10a53abae12b30f0dbbf
Author: Doroszlai, Attila <64...@users.noreply.github.com>
AuthorDate: Wed Mar 30 10:01:58 2022 +0200
HDDS-6429. getContainerReplicas should respect client version (#3231)
---
.../hdds/scm/protocol/StorageContainerLocationProtocol.java | 4 ++--
.../StorageContainerLocationProtocolClientSideTranslatorPB.java | 4 ++--
.../StorageContainerLocationProtocolServerSideTranslatorPB.java | 8 +++++---
.../apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java | 6 +++---
.../org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java | 5 +++--
5 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
index 20a8ada..6f078bd 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocol.java
@@ -101,8 +101,8 @@ public interface StorageContainerLocationProtocol extends Closeable {
* @return List of ReplicaInfo for the container or an empty list if none.
* @throws IOException
*/
- List<HddsProtos.SCMContainerReplicaProto>
- getContainerReplicas(long containerId) throws IOException;
+ List<HddsProtos.SCMContainerReplicaProto> getContainerReplicas(
+ long containerId, int clientVersion) throws IOException;
/**
* Ask SCM the location of a batch of containers. SCM responds with a group of
diff --git a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
index e1c19f7..997271e 100644
--- a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
+++ b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/scm/protocolPB/StorageContainerLocationProtocolClientSideTranslatorPB.java
@@ -259,8 +259,8 @@ public final class StorageContainerLocationProtocolClientSideTranslatorPB
* {@inheritDoc}
*/
@Override
- public List<HddsProtos.SCMContainerReplicaProto>
- getContainerReplicas(long containerID) throws IOException {
+ public List<HddsProtos.SCMContainerReplicaProto> getContainerReplicas(
+ long containerID, int clientVersion) throws IOException {
Preconditions.checkState(containerID >= 0,
"Container ID cannot be negative");
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
index d3f5e8c..ba4c2a6 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/protocol/StorageContainerLocationProtocolServerSideTranslatorPB.java
@@ -422,7 +422,8 @@ public final class StorageContainerLocationProtocolServerSideTranslatorPB
.setCmdType(request.getCmdType())
.setStatus(Status.OK)
.setGetContainerReplicasResponse(getContainerReplicas(
- request.getGetContainerReplicasRequest()))
+ request.getGetContainerReplicasRequest(),
+ request.getVersion()))
.build();
default:
throw new IllegalArgumentException(
@@ -436,9 +437,10 @@ public final class StorageContainerLocationProtocolServerSideTranslatorPB
}
public GetContainerReplicasResponseProto getContainerReplicas(
- GetContainerReplicasRequestProto request) throws IOException {
+ GetContainerReplicasRequestProto request, int clientVersion)
+ throws IOException {
List<HddsProtos.SCMContainerReplicaProto> replicas
- = impl.getContainerReplicas(request.getContainerID());
+ = impl.getContainerReplicas(request.getContainerID(), clientVersion);
return GetContainerReplicasResponseProto.newBuilder()
.addAllContainerReplica(replicas).build();
}
diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
index 51daea9..d7ee536 100644
--- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
+++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java
@@ -291,8 +291,8 @@ public class SCMClientProtocolServer implements
}
@Override
- public List<HddsProtos.SCMContainerReplicaProto>
- getContainerReplicas(long containerId) throws IOException {
+ public List<HddsProtos.SCMContainerReplicaProto> getContainerReplicas(
+ long containerId, int clientVersion) throws IOException {
List<HddsProtos.SCMContainerReplicaProto> results = new ArrayList<>();
Set<ContainerReplica> replicas = getScm().getContainerManager()
@@ -302,7 +302,7 @@ public class SCMClientProtocolServer implements
HddsProtos.SCMContainerReplicaProto.newBuilder()
.setContainerID(containerId)
.setState(r.getState().toString())
- .setDatanodeDetails(r.getDatanodeDetails().getProtoBufMessage())
+ .setDatanodeDetails(r.getDatanodeDetails().toProto(clientVersion))
.setBytesUsed(r.getBytesUsed())
.setPlaceOfBirth(r.getOriginDatanodeId().toString())
.setKeyCount(r.getKeyCount())
diff --git a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java
index fd326f8..b12321b 100644
--- a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java
+++ b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/ContainerOperationClient.java
@@ -493,8 +493,9 @@ public class ContainerOperationClient implements ScmClient {
@Override
public List<ContainerReplicaInfo>
getContainerReplicas(long containerId) throws IOException {
- List<HddsProtos.SCMContainerReplicaProto> protos
- = storageContainerLocationClient.getContainerReplicas(containerId);
+ List<HddsProtos.SCMContainerReplicaProto> protos =
+ storageContainerLocationClient.getContainerReplicas(containerId,
+ ClientVersion.CURRENT_VERSION);
List<ContainerReplicaInfo> replicas = new ArrayList<>();
for (HddsProtos.SCMContainerReplicaProto p : protos) {
replicas.add(ContainerReplicaInfo.fromProto(p));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org