/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.service.vipr.file.tasks; import java.net.URI; import java.util.List; import org.apache.commons.lang.StringUtils; import com.emc.sa.service.vipr.tasks.WaitForTask; import com.emc.storageos.model.file.FileSnapshotRestRep; import com.emc.storageos.model.file.FileSystemExportParam; import com.emc.vipr.client.Task; public class CreateFileSnapshotExport extends WaitForTask<FileSnapshotRestRep> { private final URI fileSnapshotId; private final String protocol; private final String security; private final String permissions; private final String user; private final List<String> hosts; private final String subDirectory; private final String comment; // Security Types: sys, krb5, krb5i, krb5p // Permissions: ro, rw, root public CreateFileSnapshotExport(String fileSnapshotId, String comment, String protocol, String security, String permissions, String user, List<String> hosts, String subDirectory) { this(uri(fileSnapshotId), comment, protocol, security, permissions, user, hosts, subDirectory); } public CreateFileSnapshotExport(URI fileSnapshotId, String comment, String protocol, String security, String permissions, String user, List<String> hosts, String subDirectory) { this.fileSnapshotId = fileSnapshotId; this.protocol = protocol; this.security = security; this.permissions = permissions; this.user = user; this.hosts = hosts; this.subDirectory = subDirectory; this.comment = comment; provideDetailArgs(fileSnapshotId, comment, protocol, security, permissions, user, hosts, subDirectory); } @Override protected Task<FileSnapshotRestRep> doExecute() throws Exception { FileSystemExportParam export = new FileSystemExportParam(); export.setProtocol(protocol); export.setSecurityType(security); export.setPermissions(permissions); export.setRootUserMapping(user); export.getEndpoints().addAll(hosts); if (StringUtils.isNotBlank(comment)) { export.setComments(comment); } if (StringUtils.isNotBlank(subDirectory)) { export.setSubDirectory(subDirectory); } return getClient().fileSnapshots().export(fileSnapshotId, export); } }