/* * Copyright (c) 2012-2015 EMC * All Rights Reserved */ package com.emc.sa.service.vipr.object; import static com.emc.sa.service.ServiceParams.ACL_TYPE; import static com.emc.sa.service.ServiceParams.ACL_NAME; import static com.emc.sa.service.ServiceParams.ACL_DOMAIN; import static com.emc.sa.service.ServiceParams.ACL_PERMISSION; import static com.emc.sa.service.ServiceParams.HARD_QUOTA; import static com.emc.sa.service.ServiceParams.NAME; import static com.emc.sa.service.ServiceParams.OWNER; import static com.emc.sa.service.ServiceParams.PROJECT; import static com.emc.sa.service.ServiceParams.RETENTION; import static com.emc.sa.service.ServiceParams.SOFT_QUOTA; import static com.emc.sa.service.ServiceParams.VIRTUAL_ARRAY; import static com.emc.sa.service.ServiceParams.VIRTUAL_POOL; import java.net.URI; import java.util.List; import org.apache.commons.lang.StringUtils; import com.emc.sa.engine.ExecutionUtils; import com.emc.sa.engine.bind.Param; import com.emc.sa.engine.service.Service; import com.emc.sa.service.vipr.ViPRService; @Service("CreateBucket") public class CreateBucketService extends ViPRService { @Param(NAME) protected String bucketName; @Param(VIRTUAL_POOL) protected URI virtualPool; @Param(VIRTUAL_ARRAY) protected URI virtualArray; @Param(PROJECT) protected URI project; @Param(value = SOFT_QUOTA) protected Double softQuota; @Param(value = HARD_QUOTA) protected Double hardQuota; @Param(value = RETENTION) protected String retention; @Param(value = OWNER, required = false) protected String owner; protected ObjectStorageUtils.ObjectStorageACL objectStorageACL = new ObjectStorageUtils.ObjectStorageACL(); @Param(ACL_TYPE) public String aclType; @Param(ACL_NAME) public String aclName; @Param(ACL_DOMAIN) public String aclDomain; @Param(ACL_PERMISSION) public List<String> aclPermissions; protected URI bucketId; @Override public void precheck() throws Exception { objectStorageACL.aclType = aclType; objectStorageACL.aclName = aclName; objectStorageACL.aclDomain = aclDomain; objectStorageACL.aclPermission = aclPermissions; List<String> invalidNames = ObjectStorageUtils.getInvalidObjectACL(objectStorageACL); if (!invalidNames.isEmpty()) { ExecutionUtils.fail("failTask.CreateBucketACL.invalidName", invalidNames, invalidNames); } } @Override public void execute() throws Exception { this.bucketId = ObjectStorageUtils.createBucket(bucketName, virtualArray, virtualPool, project, softQuota, hardQuota, retention, owner); if (!StringUtils.isBlank(objectStorageACL.aclName)) { ObjectStorageUtils.setObjectShareACL(bucketId, objectStorageACL); } } }