Class OMBucketCreateRequest

java.lang.Object
org.apache.hadoop.ozone.om.request.OMClientRequest
org.apache.hadoop.ozone.om.request.bucket.OMBucketCreateRequest
All Implemented Interfaces:
RequestAuditor

public class OMBucketCreateRequest extends OMClientRequest
Handles CreateBucket Request.
  • Constructor Details

    • OMBucketCreateRequest

      public OMBucketCreateRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest omRequest)
  • Method Details

    • preExecute

      public org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest preExecute(OzoneManager ozoneManager) throws IOException
      Description copied from class: OMClientRequest
      Perform pre-execute steps on a OMRequest. Called from the RPC context, and generates a OMRequest object which has all the information that will be either persisted in RocksDB or returned to the caller once this operation is executed.
      Overrides:
      preExecute in class OMClientRequest
      Returns:
      OMRequest that will be serialized and handed off to Ratis for consensus.
      Throws:
      IOException
    • 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.
    • checkQuotaBytesValid

      public boolean checkQuotaBytesValid(org.apache.hadoop.ozone.om.OMMetadataManager metadataManager, org.apache.hadoop.ozone.om.helpers.OmVolumeArgs omVolumeArgs, org.apache.hadoop.ozone.om.helpers.OmBucketInfo omBucketInfo, String volumeKey) throws IOException
      Throws:
      IOException
    • disallowCreateBucketWithECReplicationConfig

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowCreateBucketWithECReplicationConfig(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws org.apache.hadoop.ozone.om.exceptions.OMException
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException
    • handleCreateBucketWithBucketLayoutDuringPreFinalize

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest handleCreateBucketWithBucketLayoutDuringPreFinalize(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws org.apache.hadoop.ozone.om.exceptions.OMException
      Throws:
      org.apache.hadoop.ozone.om.exceptions.OMException
    • setDefaultBucketLayoutForOlderClients

      public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest setDefaultBucketLayoutForOlderClients(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx)
      When a client that does not support bucket layout types issues a create bucket command, it will leave the bucket layout field empty. For these old clients, they should create legacy buckets so that they can read and write to them, instead of using the server default which may be in a layout they do not understand.