Search in sources :

Example 1 with Type

use of org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type in project ozone by apache.

the class OMKeyRequestFactory method createRequest.

/**
 * Create OM request based on the bucket layout type.
 *
 * @param omRequest    om key request
 * @param ozoneManager ozone manager
 * @return omKeyRequest
 * @throws IOException
 */
public static OMKeyRequest createRequest(OMRequest omRequest, OzoneManager ozoneManager) throws IOException {
    Type cmdType = omRequest.getCmdType();
    KeyArgs keyArgs;
    OMKeyRequest omKeyRequest = null;
    switch(cmdType) {
        case CreateDirectory:
            keyArgs = omRequest.getCreateDirectoryRequest().getKeyArgs();
            omKeyRequest = OMDirectoryCreateRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case CreateFile:
            keyArgs = omRequest.getCreateFileRequest().getKeyArgs();
            omKeyRequest = OMFileCreateRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case CreateKey:
            keyArgs = omRequest.getCreateKeyRequest().getKeyArgs();
            omKeyRequest = OMKeyCreateRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case AllocateBlock:
            keyArgs = omRequest.getAllocateBlockRequest().getKeyArgs();
            omKeyRequest = OMAllocateBlockRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case CommitKey:
            keyArgs = omRequest.getCommitKeyRequest().getKeyArgs();
            omKeyRequest = OMKeyCommitRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case DeleteKey:
            keyArgs = omRequest.getDeleteKeyRequest().getKeyArgs();
            omKeyRequest = OMKeyDeleteRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case DeleteKeys:
            return new OMKeysDeleteRequest(omRequest);
        case RenameKey:
            keyArgs = omRequest.getRenameKeyRequest().getKeyArgs();
            omKeyRequest = OMKeyRenameRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case RenameKeys:
            return new OMKeysRenameRequest(omRequest);
        case PurgeKeys:
            omKeyRequest = new OMKeyPurgeRequest(omRequest);
            break;
        case PurgePaths:
            omKeyRequest = new OMPathsPurgeRequestWithFSO(omRequest);
            break;
        case InitiateMultiPartUpload:
            keyArgs = omRequest.getInitiateMultiPartUploadRequest().getKeyArgs();
            omKeyRequest = S3InitiateMultipartUploadRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case CommitMultiPartUpload:
            keyArgs = omRequest.getCommitMultiPartUploadRequest().getKeyArgs();
            omKeyRequest = S3MultipartUploadCommitPartRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case AbortMultiPartUpload:
            keyArgs = omRequest.getAbortMultiPartUploadRequest().getKeyArgs();
            omKeyRequest = S3MultipartUploadAbortRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        case CompleteMultiPartUpload:
            keyArgs = omRequest.getCompleteMultiPartUploadRequest().getKeyArgs();
            omKeyRequest = S3MultipartUploadCompleteRequest.getInstance(keyArgs, omRequest, ozoneManager);
            break;
        default:
            // #createRequest() method.
            break;
    }
    return omKeyRequest;
}
Also used : OMPathsPurgeRequestWithFSO(org.apache.hadoop.ozone.om.request.key.OMPathsPurgeRequestWithFSO) Type(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type) OMKeyPurgeRequest(org.apache.hadoop.ozone.om.request.key.OMKeyPurgeRequest) OMKeysDeleteRequest(org.apache.hadoop.ozone.om.request.key.OMKeysDeleteRequest) KeyArgs(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.KeyArgs) OMKeysRenameRequest(org.apache.hadoop.ozone.om.request.key.OMKeysRenameRequest) OMKeyRequest(org.apache.hadoop.ozone.om.request.key.OMKeyRequest)

Example 2 with Type

use of org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type in project ozone by apache.

the class OzoneManagerRatisUtils method createClientRequest.

/**
 * Create OMClientRequest which encapsulates the OMRequest.
 * @param omRequest
 * @return OMClientRequest
 * @throws IOException
 */
@SuppressWarnings("checkstyle:methodlength")
public static OMClientRequest createClientRequest(OMRequest omRequest, OzoneManager ozoneManager) throws IOException {
    // Handling of exception by createClientRequest(OMRequest, OzoneManger):
    // Either the code will take FSO or non FSO path, both classes has a
    // validateAndUpdateCache() function which also contains
    // validateBucketAndVolume() function which validates bucket and volume and
    // throws necessary exceptions if required. validateAndUpdateCache()
    // function has catch block which catches the exception if required and
    // handles it appropriately.
    Type cmdType = omRequest.getCmdType();
    OzoneManagerProtocolProtos.KeyArgs keyArgs;
    BucketLayout bucketLayout = BucketLayout.DEFAULT;
    switch(cmdType) {
        case CreateVolume:
            return new OMVolumeCreateRequest(omRequest);
        case SetVolumeProperty:
            boolean hasQuota = omRequest.getSetVolumePropertyRequest().hasQuotaInBytes();
            boolean hasOwner = omRequest.getSetVolumePropertyRequest().hasOwnerName();
            Preconditions.checkState(hasOwner || hasQuota, "Either Quota or owner " + "should be set in the SetVolumeProperty request");
            Preconditions.checkState(!(hasOwner && hasQuota), "Either Quota or " + "owner should be set in the SetVolumeProperty request. Should not " + "set both");
            if (hasQuota) {
                return new OMVolumeSetQuotaRequest(omRequest);
            } else {
                return new OMVolumeSetOwnerRequest(omRequest);
            }
        case DeleteVolume:
            return new OMVolumeDeleteRequest(omRequest);
        case CreateBucket:
            return new OMBucketCreateRequest(omRequest);
        case DeleteBucket:
            return new OMBucketDeleteRequest(omRequest);
        case SetBucketProperty:
            boolean hasBucketOwner = omRequest.getSetBucketPropertyRequest().getBucketArgs().hasOwnerName();
            if (hasBucketOwner) {
                return new OMBucketSetOwnerRequest(omRequest);
            } else {
                return new OMBucketSetPropertyRequest(omRequest);
            }
        case AddAcl:
        case RemoveAcl:
        case SetAcl:
            return getOMAclRequest(omRequest, ozoneManager);
        case GetDelegationToken:
            return new OMGetDelegationTokenRequest(omRequest);
        case CancelDelegationToken:
            return new OMCancelDelegationTokenRequest(omRequest);
        case RenewDelegationToken:
            return new OMRenewDelegationTokenRequest(omRequest);
        case GetS3Secret:
            return new S3GetSecretRequest(omRequest);
        case RecoverTrash:
            return new OMTrashRecoverRequest(omRequest);
        case FinalizeUpgrade:
            return new OMFinalizeUpgradeRequest(omRequest);
        case Prepare:
            return new OMPrepareRequest(omRequest);
        case CancelPrepare:
            return new OMCancelPrepareRequest(omRequest);
        case RevokeS3Secret:
            return new S3RevokeSecretRequest(omRequest);
        /**
         * Following key requests will be created in {@link OMKeyRequestFactory}.
         */
        case CreateDirectory:
        case CreateFile:
        case CreateKey:
        case AllocateBlock:
        case CommitKey:
        case DeleteKey:
        case DeleteKeys:
        case RenameKey:
        case RenameKeys:
        case PurgeKeys:
        case PurgePaths:
        case InitiateMultiPartUpload:
        case CommitMultiPartUpload:
        case AbortMultiPartUpload:
        case CompleteMultiPartUpload:
            return OMKeyRequestFactory.createRequest(omRequest, ozoneManager);
        default:
            throw new IllegalStateException("Unrecognized write command " + "type request" + cmdType);
    }
}
Also used : OMFinalizeUpgradeRequest(org.apache.hadoop.ozone.om.request.upgrade.OMFinalizeUpgradeRequest) OMTrashRecoverRequest(org.apache.hadoop.ozone.om.request.key.OMTrashRecoverRequest) OMBucketCreateRequest(org.apache.hadoop.ozone.om.request.bucket.OMBucketCreateRequest) OMVolumeSetOwnerRequest(org.apache.hadoop.ozone.om.request.volume.OMVolumeSetOwnerRequest) OMCancelPrepareRequest(org.apache.hadoop.ozone.om.request.upgrade.OMCancelPrepareRequest) S3GetSecretRequest(org.apache.hadoop.ozone.om.request.s3.security.S3GetSecretRequest) S3RevokeSecretRequest(org.apache.hadoop.ozone.om.request.s3.security.S3RevokeSecretRequest) BucketLayout(org.apache.hadoop.ozone.om.helpers.BucketLayout) OMBucketSetPropertyRequest(org.apache.hadoop.ozone.om.request.bucket.OMBucketSetPropertyRequest) OMVolumeCreateRequest(org.apache.hadoop.ozone.om.request.volume.OMVolumeCreateRequest) OMBucketDeleteRequest(org.apache.hadoop.ozone.om.request.bucket.OMBucketDeleteRequest) OMGetDelegationTokenRequest(org.apache.hadoop.ozone.om.request.security.OMGetDelegationTokenRequest) ObjectType(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OzoneObj.ObjectType) Type(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type) OMVolumeSetQuotaRequest(org.apache.hadoop.ozone.om.request.volume.OMVolumeSetQuotaRequest) OzoneManagerProtocolProtos(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos) OMVolumeDeleteRequest(org.apache.hadoop.ozone.om.request.volume.OMVolumeDeleteRequest) OMCancelDelegationTokenRequest(org.apache.hadoop.ozone.om.request.security.OMCancelDelegationTokenRequest) OMPrepareRequest(org.apache.hadoop.ozone.om.request.upgrade.OMPrepareRequest) OMBucketSetOwnerRequest(org.apache.hadoop.ozone.om.request.bucket.OMBucketSetOwnerRequest) OMRenewDelegationTokenRequest(org.apache.hadoop.ozone.om.request.security.OMRenewDelegationTokenRequest)

Example 3 with Type

use of org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type in project ozone by apache.

the class OzoneManagerRequestHandler method handleReadRequest.

// TODO simplify it to make it shorter
@SuppressWarnings("methodlength")
@Override
public OMResponse handleReadRequest(OMRequest request) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Received OMRequest: {}, ", request);
    }
    Type cmdType = request.getCmdType();
    OMResponse.Builder responseBuilder = OmResponseUtil.getOMResponseBuilder(request);
    try {
        switch(cmdType) {
            case CheckVolumeAccess:
                CheckVolumeAccessResponse checkVolumeAccessResponse = checkVolumeAccess(request.getCheckVolumeAccessRequest());
                responseBuilder.setCheckVolumeAccessResponse(checkVolumeAccessResponse);
                break;
            case InfoVolume:
                InfoVolumeResponse infoVolumeResponse = infoVolume(request.getInfoVolumeRequest());
                responseBuilder.setInfoVolumeResponse(infoVolumeResponse);
                break;
            case ListVolume:
                ListVolumeResponse listVolumeResponse = listVolumes(request.getListVolumeRequest());
                responseBuilder.setListVolumeResponse(listVolumeResponse);
                break;
            case InfoBucket:
                InfoBucketResponse infoBucketResponse = infoBucket(request.getInfoBucketRequest());
                responseBuilder.setInfoBucketResponse(infoBucketResponse);
                break;
            case ListBuckets:
                ListBucketsResponse listBucketsResponse = listBuckets(request.getListBucketsRequest());
                responseBuilder.setListBucketsResponse(listBucketsResponse);
                break;
            case LookupKey:
                LookupKeyResponse lookupKeyResponse = lookupKey(request.getLookupKeyRequest(), request.getVersion());
                responseBuilder.setLookupKeyResponse(lookupKeyResponse);
                break;
            case ListKeys:
                ListKeysResponse listKeysResponse = listKeys(request.getListKeysRequest(), request.getVersion());
                responseBuilder.setListKeysResponse(listKeysResponse);
                break;
            case ListTrash:
                ListTrashResponse listTrashResponse = listTrash(request.getListTrashRequest(), request.getVersion());
                responseBuilder.setListTrashResponse(listTrashResponse);
                break;
            case ListMultiPartUploadParts:
                MultipartUploadListPartsResponse listPartsResponse = listParts(request.getListMultipartUploadPartsRequest());
                responseBuilder.setListMultipartUploadPartsResponse(listPartsResponse);
                break;
            case ListMultipartUploads:
                ListMultipartUploadsResponse response = listMultipartUploads(request.getListMultipartUploadsRequest());
                responseBuilder.setListMultipartUploadsResponse(response);
                break;
            case ServiceList:
                ServiceListResponse serviceListResponse = getServiceList(request.getServiceListRequest());
                responseBuilder.setServiceListResponse(serviceListResponse);
                break;
            case DBUpdates:
                DBUpdatesResponse dbUpdatesResponse = getOMDBUpdates(request.getDbUpdatesRequest());
                responseBuilder.setDbUpdatesResponse(dbUpdatesResponse);
                break;
            case GetFileStatus:
                GetFileStatusResponse getFileStatusResponse = getOzoneFileStatus(request.getGetFileStatusRequest(), request.getVersion());
                responseBuilder.setGetFileStatusResponse(getFileStatusResponse);
                break;
            case LookupFile:
                LookupFileResponse lookupFileResponse = lookupFile(request.getLookupFileRequest(), request.getVersion());
                responseBuilder.setLookupFileResponse(lookupFileResponse);
                break;
            case ListStatus:
                ListStatusResponse listStatusResponse = listStatus(request.getListStatusRequest(), request.getVersion());
                responseBuilder.setListStatusResponse(listStatusResponse);
                break;
            case GetAcl:
                GetAclResponse getAclResponse = getAcl(request.getGetAclRequest());
                responseBuilder.setGetAclResponse(getAclResponse);
                break;
            case FinalizeUpgradeProgress:
                FinalizeUpgradeProgressResponse upgradeProgressResponse = reportUpgradeProgress(request.getFinalizeUpgradeProgressRequest());
                responseBuilder.setFinalizeUpgradeProgressResponse(upgradeProgressResponse);
                break;
            case PrepareStatus:
                PrepareStatusResponse prepareStatusResponse = getPrepareStatus();
                responseBuilder.setPrepareStatusResponse(prepareStatusResponse);
                break;
            default:
                responseBuilder.setSuccess(false);
                responseBuilder.setMessage("Unrecognized Command Type: " + cmdType);
                break;
        }
        responseBuilder.setSuccess(true);
    } catch (IOException ex) {
        responseBuilder.setSuccess(false);
        responseBuilder.setStatus(exceptionToResponseStatus(ex));
        if (ex.getMessage() != null) {
            responseBuilder.setMessage(ex.getMessage());
        }
    }
    return responseBuilder.build();
}
Also used : FinalizeUpgradeProgressResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.FinalizeUpgradeProgressResponse) InfoBucketResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.InfoBucketResponse) LookupKeyResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.LookupKeyResponse) DBUpdatesResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.DBUpdatesResponse) ServiceListResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ServiceListResponse) CheckVolumeAccessResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CheckVolumeAccessResponse) ListKeysResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ListKeysResponse) IOException(java.io.IOException) GetAclResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.GetAclResponse) OMResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.OMResponse) ListMultipartUploadsResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ListMultipartUploadsResponse) ListBucketsResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ListBucketsResponse) Type(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type) ListVolumeResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ListVolumeResponse) ListTrashResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ListTrashResponse) ListStatusResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.ListStatusResponse) MultipartUploadListPartsResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.MultipartUploadListPartsResponse) GetFileStatusResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.GetFileStatusResponse) InfoVolumeResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.InfoVolumeResponse) PrepareStatusResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.PrepareStatusResponse) LookupFileResponse(org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.LookupFileResponse)

Aggregations

Type (org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.Type)3 IOException (java.io.IOException)1 BucketLayout (org.apache.hadoop.ozone.om.helpers.BucketLayout)1 OMBucketCreateRequest (org.apache.hadoop.ozone.om.request.bucket.OMBucketCreateRequest)1 OMBucketDeleteRequest (org.apache.hadoop.ozone.om.request.bucket.OMBucketDeleteRequest)1 OMBucketSetOwnerRequest (org.apache.hadoop.ozone.om.request.bucket.OMBucketSetOwnerRequest)1 OMBucketSetPropertyRequest (org.apache.hadoop.ozone.om.request.bucket.OMBucketSetPropertyRequest)1 OMKeyPurgeRequest (org.apache.hadoop.ozone.om.request.key.OMKeyPurgeRequest)1 OMKeyRequest (org.apache.hadoop.ozone.om.request.key.OMKeyRequest)1 OMKeysDeleteRequest (org.apache.hadoop.ozone.om.request.key.OMKeysDeleteRequest)1 OMKeysRenameRequest (org.apache.hadoop.ozone.om.request.key.OMKeysRenameRequest)1 OMPathsPurgeRequestWithFSO (org.apache.hadoop.ozone.om.request.key.OMPathsPurgeRequestWithFSO)1 OMTrashRecoverRequest (org.apache.hadoop.ozone.om.request.key.OMTrashRecoverRequest)1 S3GetSecretRequest (org.apache.hadoop.ozone.om.request.s3.security.S3GetSecretRequest)1 S3RevokeSecretRequest (org.apache.hadoop.ozone.om.request.s3.security.S3RevokeSecretRequest)1 OMCancelDelegationTokenRequest (org.apache.hadoop.ozone.om.request.security.OMCancelDelegationTokenRequest)1 OMGetDelegationTokenRequest (org.apache.hadoop.ozone.om.request.security.OMGetDelegationTokenRequest)1 OMRenewDelegationTokenRequest (org.apache.hadoop.ozone.om.request.security.OMRenewDelegationTokenRequest)1 OMCancelPrepareRequest (org.apache.hadoop.ozone.om.request.upgrade.OMCancelPrepareRequest)1 OMFinalizeUpgradeRequest (org.apache.hadoop.ozone.om.request.upgrade.OMFinalizeUpgradeRequest)1