/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.service.vipr.file; import static com.emc.sa.service.ServiceParams.BYPASS_DNS_CHECK; import static com.emc.sa.service.ServiceParams.COMMENT; import static com.emc.sa.service.ServiceParams.PROJECT; import static com.emc.sa.service.ServiceParams.SIZE_IN_GB; import static com.emc.sa.service.ServiceParams.VIRTUAL_ARRAY; import static com.emc.sa.service.ServiceParams.VIRTUAL_POOL; import static com.emc.sa.service.ServiceParams.VOLUME_NAME; import static com.emc.sa.service.vipr.file.FileConstants.DEFAULT_ROOT_USER; import static com.emc.sa.service.vipr.file.FileConstants.DEFAULT_SECURITY_TYPE; import java.net.URI; import java.util.List; import com.emc.sa.engine.ExecutionUtils; import com.emc.sa.engine.bind.Param; import com.emc.storageos.model.file.FileSystemExportParam; public class CreateNfsExportHelper { @Param(VIRTUAL_POOL) protected URI virtualPool; @Param(VIRTUAL_ARRAY) protected URI virtualArray; @Param(PROJECT) protected URI project; @Param(COMMENT) protected String comment; @Param(SIZE_IN_GB) protected Double sizeInGb; @Param(VOLUME_NAME) protected String exportName; private String permissions; private List<String> exportHosts; private String security = DEFAULT_SECURITY_TYPE; private String rootUser = DEFAULT_ROOT_USER; @Param(BYPASS_DNS_CHECK) protected boolean bypassDnsCheck; public String getPermissions() { return permissions; } public void setPermissions(String permissions) { this.permissions = permissions; } public List<String> getExportHosts() { return exportHosts; } public void setExportHosts(List<String> exportHosts) { this.exportHosts = exportHosts; } public String getSecurity() { return security; } public void setSecurity(String security) { this.security = security; } public String getRootUser() { return rootUser; } public void setRootUser(String rootUser) { this.rootUser = rootUser; } public URI createNfsExport() { URI fileSystemId = FileStorageUtils.createFileSystem(project, virtualArray, virtualPool, exportName, sizeInGb); FileStorageUtils.createFileSystemExport(fileSystemId, comment, security, permissions, rootUser, exportHosts, null, bypassDnsCheck); return fileSystemId; } public FileSystemExportParam getNfsExport(URI fileSystemId) { FileSystemExportParam export = FileStorageUtils.getNfsExport(fileSystemId, security, permissions, rootUser); if (export == null) { throw new IllegalStateException(ExecutionUtils.getMessage("illegalState.locateNfsExport")); } return export; } }