/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.service.vipr.file; import static com.emc.sa.service.ServiceParams.FILESYSTEMS; import static com.emc.sa.service.ServiceParams.SHARE_COMMENT; import static com.emc.sa.service.ServiceParams.SUBDIRECTORY; import static com.emc.sa.service.ServiceParams.VOLUME_NAME; import java.net.URI; import java.util.List; import com.emc.sa.engine.ExecutionUtils; import com.emc.sa.engine.bind.Bindable; import com.emc.sa.engine.bind.Param; import com.emc.sa.engine.service.Service; import com.emc.sa.service.vipr.ViPRService; @Service("CreateFileSystemShare") public class CreateFileSystemShareService extends ViPRService { @Param(FILESYSTEMS) protected URI fileSystemId; @Param(VOLUME_NAME) protected String shareName; @Param(SHARE_COMMENT) protected String shareComment; @Param(value = SUBDIRECTORY, required = false) protected String subDirectory; @Bindable(itemType = FileStorageUtils.FileSystemACLs.class) protected FileStorageUtils.FileSystemACLs[] fileSystemShareACLs; @Override public void precheck() throws Exception { if (fileSystemShareACLs != null && fileSystemShareACLs.length > 0) { List<String> invalidNames = FileStorageUtils.getInvalidFileACLs(fileSystemShareACLs); if (!invalidNames.isEmpty()) { ExecutionUtils.fail("failTask.CreateCifsShareHelper.invalidName", invalidNames, invalidNames); } fileSystemShareACLs = FileStorageUtils.clearEmptyFileACLs(fileSystemShareACLs); } } @Override public void execute() throws Exception { FileStorageUtils.createCifsShare(fileSystemId, shareName, shareComment, subDirectory); clearRollback(); if (fileSystemShareACLs != null && fileSystemShareACLs.length > 0) { FileStorageUtils.setFileSystemShareACL(fileSystemId, shareName, fileSystemShareACLs); } } }