diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java index b46779e2fef9..cd52bd7143e2 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/utils/OzoneManagerRatisUtils.java @@ -80,7 +80,6 @@ import org.apache.hadoop.ozone.om.request.volume.acl.OMVolumeAddAclRequest; import org.apache.hadoop.ozone.om.request.volume.acl.OMVolumeRemoveAclRequest; import org.apache.hadoop.ozone.om.request.volume.acl.OMVolumeSetAclRequest; -import org.apache.hadoop.ozone.om.request.OMEchoRPCRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OzoneObj.ObjectType; @@ -290,8 +289,6 @@ public static OMClientRequest createClientRequest(OMRequest omRequest, volumeName = keyArgs.getVolumeName(); bucketName = keyArgs.getBucketName(); break; - case EchoRPC: - return new OMEchoRPCRequest(omRequest); default: throw new IllegalStateException("Unrecognized write command " + "type request" + cmdType); diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMEchoRPCRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMEchoRPCRequest.java deleted file mode 100644 index 1d52bf92256a..000000000000 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/OMEchoRPCRequest.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - *
- * http://www.apache.org/licenses/LICENSE-2.0 - *
- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.ozone.om.request; - -import org.apache.hadoop.ozone.om.OzoneManager; -import org.apache.hadoop.ozone.om.ratis.utils.OzoneManagerDoubleBufferHelper; -import org.apache.hadoop.ozone.om.response.OMClientResponse; -import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest; - -/** - * Handles EchoRPCRequest. - */ -public class OMEchoRPCRequest extends OMClientRequest { - public OMEchoRPCRequest(OMRequest omRequest) { - super(omRequest); - } - - @Override - public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, - long transactionLogIndex, - OzoneManagerDoubleBufferHelper ozoneManagerDoubleBufferHelper) { - return null; - } - -} diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java index e4e74b006abd..9f313992304d 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java @@ -18,12 +18,12 @@ package org.apache.hadoop.ozone.protocolPB; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.stream.Collectors; +import com.google.protobuf.ByteString; import com.google.protobuf.ServiceException; import org.apache.commons.lang3.RandomUtils; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -67,6 +67,8 @@ import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CheckVolumeAccessRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CheckVolumeAccessResponse; +import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.EchoRPCRequest; +import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.EchoRPCResponse; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.FinalizeUpgradeProgressRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.FinalizeUpgradeProgressResponse; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.GetFileStatusRequest; @@ -284,6 +286,10 @@ public OMResponse handleReadRequest(OMRequest request) { responseBuilder.setGetKeyInfoResponse( getKeyInfo(request.getGetKeyInfoRequest(), request.getVersion())); break; + case EchoRPC: + EchoRPCResponse echoRPCResponse = + echoRPC(request.getEchoRPCRequest()); + responseBuilder.setEchoRPCResponse(echoRPCResponse); default: responseBuilder.setSuccess(false); responseBuilder.setMessage("Unrecognized Command Type: " + cmdType); @@ -946,30 +952,6 @@ public static OMResponse disallowGetFileStatusWithECReplicationConfig( return resp; } - @RequestFeatureValidator( - conditions = ValidationCondition.OLDER_CLIENT_REQUESTS, - processingPhase = RequestProcessingPhase.POST_PROCESS, - requestType = Type.EchoRPC - ) - public static OMResponse echoRPC( - OMRequest req, OMResponse resp, ValidationContext ctx) - throws ServiceException { - if (!resp.hasEchoRPCResponse()) { - return resp; - } - byte[] payloadBytes = new byte[0]; - int payloadRespSize = Math.min( - req.getEchoRPCRequest().getPayloadSizeResp() - * RPC_PAYLOAD_MULTIPLICATION_FACTOR, MAX_SIZE_KB); - if (payloadRespSize > 0) { - payloadBytes = RandomUtils.nextBytes(payloadRespSize); - } - resp = resp.toBuilder() - .setMessage(new String(payloadBytes, StandardCharsets.UTF_8)) - .clearEchoRPCResponse() - .build(); - return resp; - } @RequestFeatureValidator( conditions = ValidationCondition.OLDER_CLIENT_REQUESTS, @@ -1218,4 +1200,20 @@ private GetS3VolumeContextResponse getS3VolumeContext() public OzoneManager getOzoneManager() { return impl; } + + private EchoRPCResponse echoRPC(EchoRPCRequest req) { + EchoRPCResponse.Builder builder = + EchoRPCResponse.newBuilder(); + + byte[] payloadBytes = new byte[0]; + int payloadRespSize = Math.min( + req.getPayloadSizeResp() + * RPC_PAYLOAD_MULTIPLICATION_FACTOR, MAX_SIZE_KB); + if (payloadRespSize > 0) { + payloadBytes = RandomUtils.nextBytes(payloadRespSize); + } + builder.setPayload(ByteString.copyFrom(payloadBytes)); + return builder.build(); + } + }