Class OMKeysDeleteRequest

All Implemented Interfaces:
RequestAuditor
Direct Known Subclasses:
OmKeysDeleteRequestWithFSO

public class OMKeysDeleteRequest extends OMKeyRequest
Handles DeleteKey request.
  • Constructor Details

    • OMKeysDeleteRequest

      public OMKeysDeleteRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest omRequest, org.apache.hadoop.ozone.om.helpers.BucketLayout bucketLayout)
  • Method Details

    • validateAndUpdateCache

      public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, ExecutionContext context)
      Description copied from class: OMClientRequest
      Validate the OMRequest and update the cache. This step should verify that the request can be executed, perform any authorization steps and update the in-memory cache. This step does not persist the changes to the database. To coders and reviewers, CAUTION: Do NOT bring external dependencies into this method, doing so could potentially cause divergence in OM DB states in HA. If you have to, be extremely careful. e.g. Do NOT invoke ACL check inside validateAndUpdateCache, which can use Ranger plugin that relies on external DB.
      Specified by:
      validateAndUpdateCache in class OMClientRequest
      Returns:
      the response that will be returned to the client.
    • getOzoneKeyStatus

      protected org.apache.hadoop.ozone.om.helpers.OzoneFileStatus getOzoneKeyStatus(OzoneManager ozoneManager, org.apache.hadoop.ozone.om.OMMetadataManager omMetadataManager, String volumeName, String bucketName, String keyName) throws IOException
      Throws:
      IOException
    • getOmClientResponse

      @Nonnull protected OMClientResponse getOmClientResponse(OzoneManager ozoneManager, List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> omKeyInfoList, List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> dirList, org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse.Builder omResponse, org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.DeleteKeyArgs.Builder unDeletedKeys, Map<String,org.apache.hadoop.ozone.om.helpers.ErrorInfo> keyToErrors, boolean deleteStatus, org.apache.hadoop.ozone.om.helpers.OmBucketInfo omBucketInfo, long volumeId, Map<String,org.apache.hadoop.ozone.om.helpers.OmKeyInfo> openKeyInfoMap)
    • markKeysAsDeletedInCache

      protected org.apache.commons.lang3.tuple.Pair<Long,Integer> markKeysAsDeletedInCache(OzoneManager ozoneManager, long trxnLogIndex, List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> omKeyInfoList, List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> dirList, org.apache.hadoop.ozone.om.OMMetadataManager omMetadataManager, Map<String,org.apache.hadoop.ozone.om.helpers.OmKeyInfo> openKeyInfoMap) throws IOException
      Throws:
      IOException
    • addKeyToAppropriateList

      protected void addKeyToAppropriateList(List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> omKeyInfoList, org.apache.hadoop.ozone.om.helpers.OmKeyInfo omKeyInfo, List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> dirList, org.apache.hadoop.ozone.om.helpers.OzoneFileStatus keyStatus)
    • getOmKeyInfo

      protected org.apache.hadoop.ozone.om.helpers.OmKeyInfo getOmKeyInfo(OzoneManager ozoneManager, org.apache.hadoop.ozone.om.OMMetadataManager omMetadataManager, String volume, String bucket, String key) throws IOException
      Throws:
      IOException
    • addDeletedKeys

      protected static void addDeletedKeys(Map<String,String> auditMap, List<org.apache.hadoop.ozone.om.helpers.OmKeyInfo> deletedKeyInfos, List<String> unDeletedKeys)
      Add key info to audit map for DeleteKeys request.
    • blockDeleteKeysWithBucketLayoutFromOldClient

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest blockDeleteKeysWithBucketLayoutFromOldClient(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws IOException
      Validates delete key requests. We do not want to allow older clients to delete keys in buckets which use non LEGACY layouts.
      Parameters:
      req - - the request to validate
      ctx - - the validation context
      Returns:
      the validated request
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException - if the request is invalid
      IOException