-
Notifications
You must be signed in to change notification settings - Fork 589
HDDS-11013. Ensure version is always set in ContainerCommandRequestProto #6812
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
69f92e2
75c5f80
d0c2819
f61dc64
676780b
f430283
36c1baf
f922a59
861545c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -71,6 +71,7 @@ | |
| import org.slf4j.LoggerFactory; | ||
|
|
||
| import static org.apache.hadoop.hdds.HddsUtils.processForDebug; | ||
| import static org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls.getContainerCommandRequestProtoBuilder; | ||
|
|
||
| /** | ||
| * {@link XceiverClientSpi} implementation, the standalone client. | ||
|
|
@@ -337,8 +338,7 @@ private XceiverClientReply sendCommandWithTraceIDAndRetry( | |
|
|
||
| return TracingUtil.executeInNewSpan(spanName, | ||
| () -> { | ||
| ContainerCommandRequestProto finalPayload = | ||
| ContainerCommandRequestProto.newBuilder(request) | ||
| ContainerCommandRequestProto finalPayload = getContainerCommandRequestProtoBuilder(request) | ||
| .setTraceID(TracingUtil.exportCurrentSpan()).build(); | ||
| return sendCommandWithRetry(finalPayload, validators); | ||
| }); | ||
|
|
@@ -490,8 +490,7 @@ public XceiverClientReply sendCommandAsync( | |
|
|
||
| try (Scope ignored = GlobalTracer.get().activateSpan(span)) { | ||
|
|
||
| ContainerCommandRequestProto finalPayload = | ||
| ContainerCommandRequestProto.newBuilder(request) | ||
| ContainerCommandRequestProto finalPayload = getContainerCommandRequestProtoBuilder(request) | ||
|
||
| .setTraceID(TracingUtil.exportCurrentSpan()) | ||
| .build(); | ||
| XceiverClientReply asyncReply = | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -70,6 +70,7 @@ | |
| import org.apache.hadoop.hdds.scm.pipeline.Pipeline; | ||
| import org.apache.hadoop.hdds.security.token.OzoneBlockTokenIdentifier; | ||
| import org.apache.hadoop.hdds.tracing.TracingUtil; | ||
| import org.apache.hadoop.ozone.ClientVersion; | ||
| import org.apache.hadoop.ozone.common.Checksum; | ||
| import org.apache.hadoop.ozone.common.ChecksumData; | ||
| import org.apache.hadoop.security.token.Token; | ||
|
|
@@ -97,6 +98,28 @@ public final class ContainerProtocolCalls { | |
| private ContainerProtocolCalls() { | ||
| } | ||
|
|
||
| /** | ||
| * Creates a ContainerCommandRequestProto with version set. | ||
| */ | ||
| public static ContainerCommandRequestProto.Builder getContainerCommandRequestProtoBuilder(int version) { | ||
| return getContainerCommandRequestProtoBuilder(null, version); | ||
| } | ||
|
|
||
| public static ContainerCommandRequestProto.Builder getContainerCommandRequestProtoBuilder() { | ||
| return getContainerCommandRequestProtoBuilder(ClientVersion.CURRENT.toProtoValue()); | ||
swamirishi marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| } | ||
|
|
||
| public static ContainerCommandRequestProto.Builder getContainerCommandRequestProtoBuilder( | ||
| ContainerCommandRequestProto req, int version) { | ||
| return (req == null ? | ||
| ContainerCommandRequestProto.newBuilder() : ContainerCommandRequestProto.newBuilder(req)).setVersion(version); | ||
| } | ||
|
||
|
|
||
| public static ContainerCommandRequestProto.Builder getContainerCommandRequestProtoBuilder( | ||
| ContainerCommandRequestProto req) { | ||
| return getContainerCommandRequestProtoBuilder(req, ClientVersion.CURRENT.toProtoValue()); | ||
| } | ||
|
|
||
| /** | ||
| * Calls the container protocol to list blocks in container. | ||
| * | ||
|
|
@@ -125,7 +148,7 @@ public static ListBlockResponseProto listBlock(XceiverClientSpi xceiverClient, | |
| xceiverClient.getPipeline().getFirstNode().getUuidString(); | ||
|
|
||
| ContainerCommandRequestProto.Builder builder = | ||
| ContainerCommandRequestProto.newBuilder() | ||
| getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.ListBlock) | ||
| .setContainerID(containerID) | ||
| .setDatanodeUuid(datanodeID) | ||
|
|
@@ -195,8 +218,7 @@ public static GetBlockResponseProto getBlock(XceiverClientSpi xceiverClient, | |
| GetBlockRequestProto.Builder readBlockRequest = GetBlockRequestProto | ||
| .newBuilder() | ||
| .setBlockID(datanodeBlockID); | ||
| ContainerCommandRequestProto.Builder builder = ContainerCommandRequestProto | ||
| .newBuilder() | ||
| ContainerCommandRequestProto.Builder builder = getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.GetBlock) | ||
| .setContainerID(datanodeBlockID.getContainerID()) | ||
| .setGetBlock(readBlockRequest); | ||
|
|
@@ -255,7 +277,7 @@ private static GetBlockResponseProto getBlock(XceiverClientSpi xceiverClient, | |
| setBlockID(blockID.getDatanodeBlockIDProtobuf()); | ||
| String id = xceiverClient.getPipeline().getFirstNode().getUuidString(); | ||
| ContainerCommandRequestProto.Builder builder = | ||
| ContainerCommandRequestProto.newBuilder() | ||
| getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.GetCommittedBlockLength) | ||
| .setContainerID(blockID.getContainerID()) | ||
| .setDatanodeUuid(id) | ||
|
|
@@ -301,11 +323,11 @@ public static ContainerCommandRequestProto getPutBlockRequest( | |
| .setBlockData(containerBlockData) | ||
| .setEof(eof); | ||
| final String id = pipeline.getFirstNode().getUuidString(); | ||
| ContainerCommandRequestProto.Builder builder = | ||
| ContainerCommandRequestProto.newBuilder().setCmdType(Type.PutBlock) | ||
| .setContainerID(containerBlockData.getBlockID().getContainerID()) | ||
| .setDatanodeUuid(id) | ||
| .setPutBlock(createBlockRequest); | ||
| ContainerCommandRequestProto.Builder builder = getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.PutBlock) | ||
| .setContainerID(containerBlockData.getBlockID().getContainerID()) | ||
| .setDatanodeUuid(id) | ||
| .setPutBlock(createBlockRequest); | ||
| if (tokenString != null) { | ||
| builder.setEncodedToken(tokenString); | ||
| } | ||
|
|
@@ -333,7 +355,7 @@ public static ContainerProtos.ReadChunkResponseProto readChunk( | |
| .setChunkData(chunk) | ||
| .setReadChunkVersion(ContainerProtos.ReadChunkVersion.V1); | ||
| ContainerCommandRequestProto.Builder builder = | ||
| ContainerCommandRequestProto.newBuilder().setCmdType(Type.ReadChunk) | ||
| getContainerCommandRequestProtoBuilder().setCmdType(Type.ReadChunk) | ||
| .setContainerID(blockID.getContainerID()) | ||
| .setReadChunk(readChunkRequest); | ||
| if (token != null) { | ||
|
|
@@ -421,7 +443,7 @@ public static XceiverClientReply writeChunkAsync( | |
| .setData(data); | ||
| String id = xceiverClient.getPipeline().getFirstNode().getUuidString(); | ||
| ContainerCommandRequestProto.Builder builder = | ||
| ContainerCommandRequestProto.newBuilder() | ||
| getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.WriteChunk) | ||
| .setContainerID(blockID.getContainerID()) | ||
| .setDatanodeUuid(id) | ||
|
|
@@ -479,7 +501,7 @@ public static PutSmallFileResponseProto writeSmallFile( | |
|
|
||
| String id = client.getPipeline().getFirstNode().getUuidString(); | ||
| ContainerCommandRequestProto.Builder builder = | ||
| ContainerCommandRequestProto.newBuilder() | ||
| getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.PutSmallFile) | ||
| .setContainerID(blockID.getContainerID()) | ||
| .setDatanodeUuid(id) | ||
|
|
@@ -546,7 +568,7 @@ public static void createContainer(XceiverClientSpi client, | |
|
|
||
| String id = client.getPipeline().getFirstNode().getUuidString(); | ||
| ContainerCommandRequestProto.Builder request = | ||
| ContainerCommandRequestProto.newBuilder(); | ||
| getContainerCommandRequestProtoBuilder(); | ||
| if (encodedToken != null) { | ||
| request.setEncodedToken(encodedToken); | ||
| } | ||
|
|
@@ -576,7 +598,7 @@ public static void deleteContainer(XceiverClientSpi client, long containerID, | |
| String id = client.getPipeline().getFirstNode().getUuidString(); | ||
|
|
||
| ContainerCommandRequestProto.Builder request = | ||
| ContainerCommandRequestProto.newBuilder(); | ||
| getContainerCommandRequestProtoBuilder(); | ||
| request.setCmdType(ContainerProtos.Type.DeleteContainer); | ||
| request.setContainerID(containerID); | ||
| request.setDeleteContainer(deleteRequest); | ||
|
|
@@ -602,7 +624,7 @@ public static void closeContainer(XceiverClientSpi client, | |
| String id = client.getPipeline().getFirstNode().getUuidString(); | ||
|
|
||
| ContainerCommandRequestProto.Builder request = | ||
| ContainerCommandRequestProto.newBuilder(); | ||
| getContainerCommandRequestProtoBuilder(); | ||
| request.setCmdType(Type.CloseContainer); | ||
| request.setContainerID(containerID); | ||
| request.setCloseContainer(CloseContainerRequestProto.getDefaultInstance()); | ||
|
|
@@ -629,7 +651,7 @@ public static ReadContainerResponseProto readContainer( | |
| String id = client.getPipeline().getFirstNode().getUuidString(); | ||
|
|
||
| ContainerCommandRequestProto.Builder request = | ||
| ContainerCommandRequestProto.newBuilder(); | ||
| getContainerCommandRequestProtoBuilder(); | ||
| request.setCmdType(Type.ReadContainer); | ||
| request.setContainerID(containerID); | ||
| request.setReadContainer(ReadContainerRequestProto.getDefaultInstance()); | ||
|
|
@@ -667,8 +689,7 @@ public static GetSmallFileResponseProto readSmallFile(XceiverClientSpi client, | |
| .build(); | ||
| String id = client.getPipeline().getClosestNode().getUuidString(); | ||
|
|
||
| ContainerCommandRequestProto.Builder builder = ContainerCommandRequestProto | ||
| .newBuilder() | ||
| ContainerCommandRequestProto.Builder builder = getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.GetSmallFile) | ||
| .setContainerID(blockID.getContainerID()) | ||
| .setDatanodeUuid(id) | ||
|
|
@@ -778,8 +799,7 @@ public static List<Validator> toValidatorList(Validator validator) { | |
| HashMap<DatanodeDetails, GetBlockResponseProto> datanodeToResponseMap | ||
| = new HashMap<>(); | ||
| String id = xceiverClient.getPipeline().getFirstNode().getUuidString(); | ||
| ContainerCommandRequestProto.Builder builder = ContainerCommandRequestProto | ||
| .newBuilder() | ||
| ContainerCommandRequestProto.Builder builder = getContainerCommandRequestProtoBuilder() | ||
| .setCmdType(Type.GetBlock) | ||
| .setContainerID(datanodeBlockID.getContainerID()) | ||
| .setDatanodeUuid(id) | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.