Class OMKeyCommitRequest
java.lang.Object
org.apache.hadoop.ozone.om.request.OMClientRequest
org.apache.hadoop.ozone.om.request.key.OMKeyRequest
org.apache.hadoop.ozone.om.request.key.OMKeyCommitRequest
- All Implemented Interfaces:
RequestAuditor
- Direct Known Subclasses:
OMKeyCommitRequestWithFSO
Handles CommitKey request.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.ozone.om.request.OMClientRequest
OMClientRequest.Result -
Constructor Summary
ConstructorsConstructorDescriptionOMKeyCommitRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest omRequest, org.apache.hadoop.ozone.om.helpers.BucketLayout bucketLayout) -
Method Summary
Modifier and TypeMethodDescriptionstatic org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequestblockCommitKeyWithBucketLayoutFromOldClient(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) Validates key commit requests.static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequestdisallowCommitKeyWithECReplicationConfig(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequestdisallowHsync(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequestdisallowRecovery(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) Validates key commit requests.protected List<org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo> getOmKeyLocationInfos(OzoneManager ozoneManager, org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyArgs commitKeyArgs) org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequestpreExecute(OzoneManager ozoneManager) Perform pre-execute steps on a OMRequest.protected voidprocessResult(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CommitKeyRequest commitKeyRequest, String volumeName, String bucketName, String keyName, OMMetrics omMetrics, Exception exception, org.apache.hadoop.ozone.om.helpers.OmKeyInfo omKeyInfo, OMClientRequest.Result result) Process result of om request execution.validateAndUpdateCache(OzoneManager ozoneManager, ExecutionContext context) Validate the OMRequest and update the cache.protected voidvalidateAtomicRewrite(org.apache.hadoop.ozone.om.helpers.OmKeyInfo existing, org.apache.hadoop.ozone.om.helpers.OmKeyInfo toCommit, Map<String, String> auditMap) Methods inherited from class org.apache.hadoop.ozone.om.request.key.OMKeyRequest
addKeyInfoToDeleteMap, allocateBlock, checkBucketAcls, checkBucketQuotaInBytes, checkBucketQuotaInNamespace, checkDirectoryAlreadyExists, checkKeyAcls, checkKeyAcls, checkKeyAclsInOpenKeyTable, createDirectoryInfoWithACL, createDirectoryKeyInfoWithACL, createFileInfo, dirKeyInfoBuilderNoACL, filterOutBlocksStillInUse, generateRequiredEncryptionInfo, getAclsForDir, getAclsForKey, getAllMissingParentDirInfo, getAllParentInfo, getBucketInfo, getBucketLayout, getDBMultipartOpenKey, getFileEncryptionInfo, getFileEncryptionInfo, getFileEncryptionInfoForMpuKey, getOldVersionsToCleanUp, getOzoneLockStrategy, getRemoteUser, getVolumeOwner, prepareFileInfo, prepareKeyInfo, resolveBucketAndCheckKeyAcls, resolveBucketAndCheckKeyAclsWithFSO, resolveBucketAndCheckOpenKeyAcls, resolveBucketLink, resolveBucketLink, sumBlockLengths, validateBucketAndVolume, validateEncryptionKeyInfo, wrapUncommittedBlocksAsPseudoKeyMethods inherited from class org.apache.hadoop.ozone.om.request.OMClientRequest
buildAuditMessage, buildVolumeAuditMap, checkAcls, checkAcls, checkAcls, checkACLsWithFSO, createErrorOMResponse, createUGI, createUGIForApi, getAuditBuilder, getHostName, getOmLockDetails, getOmRequest, getRemoteAddress, getUserIfNotExists, getUserInfo, handleRequestFailure, isValidKeyPath, markForAudit, mergeOmLockDetails, normalizeKeyPath, setUGI, validateAndNormalizeKey, validateAndNormalizeKey, validateAndNormalizeKey, validateAndUpdateCacheMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.ozone.om.request.RequestAuditor
buildKeyArgsAuditMap, buildLightKeyArgsAuditMap
-
Constructor Details
-
OMKeyCommitRequest
public OMKeyCommitRequest(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest omRequest, org.apache.hadoop.ozone.om.helpers.BucketLayout bucketLayout)
-
-
Method Details
-
preExecute
public org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest preExecute(OzoneManager ozoneManager) throws IOException Description copied from class:OMClientRequestPerform 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:
preExecutein classOMClientRequest- Returns:
- OMRequest that will be serialized and handed off to Ratis for consensus.
- Throws:
IOException
-
validateAndUpdateCache
Description copied from class:OMClientRequestValidate 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:
validateAndUpdateCachein classOMClientRequest- Returns:
- the response that will be returned to the client.
-
getOmKeyLocationInfos
@Nonnull protected List<org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo> getOmKeyLocationInfos(OzoneManager ozoneManager, org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyArgs commitKeyArgs) -
processResult
protected void processResult(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CommitKeyRequest commitKeyRequest, String volumeName, String bucketName, String keyName, OMMetrics omMetrics, Exception exception, org.apache.hadoop.ozone.om.helpers.OmKeyInfo omKeyInfo, OMClientRequest.Result result) Process result of om request execution.- Parameters:
commitKeyRequest- commit key requestvolumeName- volume namebucketName- bucket namekeyName- key nameomMetrics- om metricsexception- exception traceomKeyInfo- omKeyInforesult- stores the result of the execution
-
disallowCommitKeyWithECReplicationConfig
public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowCommitKeyWithECReplicationConfig(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
-
blockCommitKeyWithBucketLayoutFromOldClient
public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest blockCommitKeyWithBucketLayoutFromOldClient(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws IOException Validates key commit requests. We do not want to allow older clients to commit keys associated with buckets which use non LEGACY layouts.- Parameters:
req- - the request to validatectx- - the validation context- Returns:
- the validated request
- Throws:
org.apache.hadoop.ozone.om.exceptions.OMException- if the request is invalidIOException
-
disallowHsync
public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowHsync(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
-
disallowRecovery
public static org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest disallowRecovery(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMRequest req, ValidationContext ctx) throws org.apache.hadoop.ozone.om.exceptions.OMException Validates key commit requests. We do not want to allow clients to perform lease recovery requests until the cluster has finalized the HBase support feature.- Parameters:
req- - the request to validatectx- - the validation context- Returns:
- the validated request
- Throws:
org.apache.hadoop.ozone.om.exceptions.OMException- if the request is invalid
-
validateAtomicRewrite
protected void validateAtomicRewrite(org.apache.hadoop.ozone.om.helpers.OmKeyInfo existing, org.apache.hadoop.ozone.om.helpers.OmKeyInfo toCommit, Map<String, String> auditMap) throws org.apache.hadoop.ozone.om.exceptions.OMException- Throws:
org.apache.hadoop.ozone.om.exceptions.OMException
-