diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java index ba439608be08..920194ecc071 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java @@ -35,6 +35,8 @@ import org.apache.hadoop.ozone.om.helpers.OmKeyArgs; import org.apache.hadoop.ozone.om.helpers.OmKeyInfo; import org.apache.hadoop.ozone.om.helpers.OzoneFileStatus; +import org.apache.hadoop.ozone.om.ratis.utils.OzoneManagerRatisUtils; +import org.apache.hadoop.ozone.om.request.OMClientRequest; import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos; import org.apache.hadoop.ozone.om.helpers.OMRatisHelper; import org.apache.hadoop.security.UserGroupInformation; @@ -107,6 +109,9 @@ private void submitRequest(OzoneManagerProtocolProtos.OMRequest omRequest) throws Exception { ozoneManager.getMetrics().incNumTrashWriteRequests(); if (ozoneManager.isRatisEnabled()) { + OMClientRequest omClientRequest = + OzoneManagerRatisUtils.createClientRequest(omRequest); + omRequest = omClientRequest.preExecute(ozoneManager); RaftClientRequest req = getRatisRequest(omRequest); ozoneManager.getOmRatisServer().submitRequest(omRequest, req); } else { @@ -434,12 +439,14 @@ boolean processKeyPath(List keyPathList) { private class DeleteIterator extends OzoneListingIterator { final private boolean recursive; + private List keysList; DeleteIterator(Path f, boolean recursive) throws IOException { super(f); this.recursive = recursive; + keysList = new ArrayList<>(); if (getStatus().isDirectory() && !this.recursive && listStatus(f).length != 0) { @@ -470,22 +477,23 @@ boolean processKeyPath(List keyPathList) { String volumeName = keyPath.getVolumeName(); String bucketName = keyPath.getBucketName(); String keyName = keyPath.getKeyName(); - - OzoneManagerProtocolProtos.KeyArgs keyArgs = - OzoneManagerProtocolProtos.KeyArgs.newBuilder() - .setKeyName(keyName) - .setVolumeName(volumeName) + keysList.clear(); + // Keys List will have only 1 entry. + keysList.add(keyName); + OzoneManagerProtocolProtos.DeleteKeyArgs.Builder deleteKeyArgs = + OzoneManagerProtocolProtos.DeleteKeyArgs.newBuilder() .setBucketName(bucketName) - .build(); - OzoneManagerProtocolProtos.DeleteKeyRequest deleteKeyRequest = - OzoneManagerProtocolProtos.DeleteKeyRequest.newBuilder() - .setKeyArgs(keyArgs) + .setVolumeName(volumeName); + deleteKeyArgs.addAllKeys(keysList); + OzoneManagerProtocolProtos.DeleteKeysRequest deleteKeysRequest = + OzoneManagerProtocolProtos.DeleteKeysRequest.newBuilder() + .setDeleteKeys(deleteKeyArgs) .build(); OzoneManagerProtocolProtos.OMRequest omRequest = OzoneManagerProtocolProtos.OMRequest.newBuilder() .setClientId(CLIENT_ID.toString()) - .setDeleteKeyRequest(deleteKeyRequest) - .setCmdType(OzoneManagerProtocolProtos.Type.DeleteKey) + .setDeleteKeysRequest(deleteKeysRequest) + .setCmdType(OzoneManagerProtocolProtos.Type.DeleteKeys) .build(); return omRequest; }