/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.service.vipr.file.tasks; import static com.emc.sa.util.ArrayUtil.safeArrayCopy; import java.net.URI; import com.emc.sa.service.vipr.file.FileStorageUtils; import com.emc.sa.service.vipr.file.FileStorageUtils.FileSystemACLs; import com.emc.sa.service.vipr.tasks.WaitForTask; import com.emc.storageos.model.file.FileSnapshotRestRep; import com.emc.storageos.model.file.ShareACLs; import com.emc.storageos.model.file.SnapshotCifsShareACLUpdateParams; import com.emc.vipr.client.Task; public class SetFileSnapshotShareACL extends WaitForTask<FileSnapshotRestRep> { private final String shareName; private final URI fileSystemId; private final FileSystemACLs[] acls; public SetFileSnapshotShareACL(URI fileSystemId, String shareName, FileSystemACLs[] acls) { this.shareName = shareName; this.fileSystemId = fileSystemId; this.acls = safeArrayCopy(acls); provideDetailArgs(fileSystemId, shareName); } @Override protected Task<FileSnapshotRestRep> doExecute() throws Exception { SnapshotCifsShareACLUpdateParams aclUpdate = new SnapshotCifsShareACLUpdateParams(); ShareACLs shareACLs = FileStorageUtils.createShareACLs(acls); aclUpdate.setAclsToAdd(shareACLs); return getClient().fileSnapshots().updateShareACL(fileSystemId, shareName, aclUpdate); } }