Search in sources :

Example 1 with NFSShareDefaultAccessEnum

use of com.emc.storageos.vnxe.models.NfsShareParam.NFSShareDefaultAccessEnum in project coprhd-controller by CoprHD.

the class VNXeApiClient method exportFileSystem.

/**
 * NFS export
 *
 * @param fsId
 *            file system KH id
 * @param endpoints
 *            list of host ipaddresses export to
 * @param access
 *            access right
 * @return VNXeCommandJob
 * @throws VNXeException
 */
public VNXeCommandJob exportFileSystem(String fsId, List<String> roEndpoints, List<String> rwEndpoints, List<String> rootEndpoints, AccessEnum access, String path, String shareName, String shareId, String comments) throws VNXeException {
    _logger.info("Exporting file system:" + fsId);
    FileSystemRequest fsRequest = new FileSystemRequest(_khClient, fsId);
    VNXeFileSystem fs = fsRequest.get();
    if (fs == null) {
        _logger.info("Could not find file system in the vxne");
        throw VNXeException.exceptions.vnxeCommandFailed("Could not find file system in the vnxe for: " + fsId);
    }
    String resourceId = fs.getStorageResource().getId();
    ModifyFileSystemParam modifyFSParm = new ModifyFileSystemParam();
    List<VNXeBase> roHosts = getHosts(roEndpoints);
    List<VNXeBase> rwHosts = getHosts(rwEndpoints);
    List<VNXeBase> rootHosts = getHosts(rootEndpoints);
    VNXeNfsShare nfsShareFound = null;
    if (shareName != null) {
        nfsShareFound = findNfsShare(fsId, shareName);
    } else {
        nfsShareFound = getNfsShareById(shareId);
    }
    String nfsShareId = null;
    List<VNXeBase> hosts = new ArrayList<VNXeBase>();
    if (nfsShareFound != null) {
        nfsShareId = nfsShareFound.getId();
    }
    NfsShareParam shareParm = new NfsShareParam();
    shareParm.setReadOnlyHosts(roHosts);
    shareParm.setReadWriteHosts(rwHosts);
    shareParm.setRootAccessHosts(rootHosts);
    if (comments != null) {
        shareParm.setDescription(comments);
    }
    if (access == null) {
        if (nfsShareFound != null) {
            hosts.addAll(nfsShareFound.getNoAccessHosts());
            hosts.addAll(nfsShareFound.getRootAccessHosts());
            hosts.addAll(nfsShareFound.getReadWriteHosts());
            hosts.addAll(nfsShareFound.getReadOnlyHosts());
        }
        NFSShareDefaultAccessEnum nfsShareDefaultAccess = NFSShareDefaultAccessEnum.NONE;
        if (nfsShareFound != null) {
            nfsShareDefaultAccess = nfsShareFound.getDefaultAccess();
        }
        if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.ROOT)) {
            if (!hosts.isEmpty()) {
                shareParm.setRootAccessHosts(hosts);
            } else {
                shareParm.setRootAccessHosts(null);
            }
            shareParm.setNoAccessHosts(null);
            shareParm.setReadWriteHosts(null);
            shareParm.setReadOnlyHosts(null);
        } else if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.READONLY)) {
            if (!hosts.isEmpty()) {
                shareParm.setReadOnlyHosts(hosts);
            } else {
                shareParm.setReadOnlyHosts(null);
            }
            shareParm.setNoAccessHosts(null);
            shareParm.setReadWriteHosts(null);
            shareParm.setRootAccessHosts(null);
        } else if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.READWRITE)) {
            if (!hosts.isEmpty()) {
                shareParm.setReadWriteHosts(hosts);
            } else {
                shareParm.setReadWriteHosts(null);
            }
            shareParm.setNoAccessHosts(null);
            shareParm.setReadOnlyHosts(null);
            shareParm.setRootAccessHosts(null);
        } else if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.NONE)) {
            if (!hosts.isEmpty()) {
                shareParm.setNoAccessHosts(hosts);
            } else {
                shareParm.setNoAccessHosts(null);
            }
            shareParm.setReadWriteHosts(null);
            shareParm.setReadOnlyHosts(null);
            shareParm.setRootAccessHosts(null);
        }
    }
    if (nfsShareId == null) {
        // not found, new export
        if (!isUnityClient()) {
            shareParm.setDefaultAccess(NFSShareDefaultAccessEnum.NONE);
        }
        NfsShareCreateParam nfsShareCreateParm = new NfsShareCreateParam();
        nfsShareCreateParm.setName(shareName);
        nfsShareCreateParm.setPath(path);
        nfsShareCreateParm.setNfsShareParameters(shareParm);
        List<NfsShareCreateParam> nfsList = new ArrayList<NfsShareCreateParam>();
        nfsList.add(nfsShareCreateParm);
        modifyFSParm.setNfsShareCreate(nfsList);
    } else {
        // update export
        NfsShareModifyParam nfsShareModifyParam = new NfsShareModifyParam();
        VNXeBase nfsShare = new VNXeBase();
        nfsShare.setId(nfsShareId);
        nfsShareModifyParam.setNfsShare(nfsShare);
        nfsShareModifyParam.setNfsShareParameters(shareParm);
        List<NfsShareModifyParam> nfsModifyList = new ArrayList<NfsShareModifyParam>();
        nfsModifyList.add(nfsShareModifyParam);
        modifyFSParm.setNfsShareModify(nfsModifyList);
    }
    FileSystemActionRequest req = new FileSystemActionRequest(_khClient);
    return req.modifyFileSystemAsync(modifyFSParm, resourceId);
}
Also used : VNXeFileSystem(com.emc.storageos.vnxe.models.VNXeFileSystem) NFSShareDefaultAccessEnum(com.emc.storageos.vnxe.models.NfsShareParam.NFSShareDefaultAccessEnum) ArrayList(java.util.ArrayList) NfsShareCreateParam(com.emc.storageos.vnxe.models.NfsShareCreateParam) NfsShareModifyParam(com.emc.storageos.vnxe.models.NfsShareModifyParam) FileSystemRequest(com.emc.storageos.vnxe.requests.FileSystemRequest) VNXeBase(com.emc.storageos.vnxe.models.VNXeBase) VNXeNfsShare(com.emc.storageos.vnxe.models.VNXeNfsShare) NfsShareParam(com.emc.storageos.vnxe.models.NfsShareParam) ModifyFileSystemParam(com.emc.storageos.vnxe.models.ModifyFileSystemParam) FileSystemActionRequest(com.emc.storageos.vnxe.requests.FileSystemActionRequest)

Example 2 with NFSShareDefaultAccessEnum

use of com.emc.storageos.vnxe.models.NfsShareParam.NFSShareDefaultAccessEnum in project coprhd-controller by CoprHD.

the class VNXeApiClient method createNfsShareForSnap.

/**
 * Create Nfs share for snapshot
 *
 * @param snapId
 *            snapshot id
 * @param endpoints
 *            hosts
 * @param access
 *            READ, WRITE, ROOT
 * @param path
 * @param exportKey
 * @return VNXeCommandJob
 * @throws VNXeException
 */
public VNXeCommandJob createNfsShareForSnap(String snapId, List<String> roEndpoints, List<String> rwEndpoints, List<String> rootEndpoints, AccessEnum access, String path, String shareName, String comments) throws VNXeException {
    _logger.info("creating nfs share for the snap: " + snapId);
    NfsShareRequests request = new NfsShareRequests(_khClient);
    String softwareVersion = getBasicSystemInfo().getSoftwareVersion();
    FileSystemSnapRequests req = new FileSystemSnapRequests(_khClient, softwareVersion);
    VNXeFileSystemSnap snapshot = req.getFileSystemSnap(snapId, softwareVersion);
    if (snapshot == null) {
        _logger.info("Could not find snapshot in the vxne");
        throw VNXeException.exceptions.vnxeCommandFailed("Could not find snapshot in the vnxe for: " + snapId);
    }
    NfsShareCreateForSnapParam nfsCreateParam = new NfsShareCreateForSnapParam();
    VNXeBase snap = new VNXeBase(snapId);
    if (!VNXeUtils.isHigherVersion(softwareVersion, VNXeConstants.VNXE_BASE_SOFT_VER)) {
        nfsCreateParam.setFilesystemSnap(snap);
    } else {
        nfsCreateParam.setSnap(snap);
    }
    List<VNXeBase> roHosts = getHosts(roEndpoints);
    List<VNXeBase> rwHosts = getHosts(rwEndpoints);
    List<VNXeBase> rootHosts = getHosts(rootEndpoints);
    VNXeCommandJob job = null;
    VNXeNfsShare nfsShareFound = request.findSnapNfsShare(snapId, shareName, softwareVersion);
    if (nfsShareFound == null) {
        // new export
        nfsCreateParam.setReadOnlyHosts(roHosts);
        nfsCreateParam.setReadWriteHosts(rwHosts);
        nfsCreateParam.setRootAccessHosts(rootHosts);
        nfsCreateParam.setName(shareName);
        nfsCreateParam.setPath(path);
        if (comments != null) {
            nfsCreateParam.setDescription(comments);
        }
        request.unsetQueryParameters();
        job = request.createShareForSnapshot(nfsCreateParam);
    } else {
        String nfsShareId = nfsShareFound.getId();
        NFSShareDefaultAccessEnum nfsShareDefaultAccess = nfsShareFound.getDefaultAccess();
        NfsShareModifyForShareParam nfsModifyParam = new NfsShareModifyForShareParam();
        List<VNXeBase> hosts = new ArrayList<VNXeBase>();
        nfsModifyParam.setReadOnlyHosts(roHosts);
        nfsModifyParam.setReadWriteHosts(rwHosts);
        nfsModifyParam.setRootAccessHosts(rootHosts);
        if (comments != null) {
            nfsModifyParam.setDescription(comments);
        }
        if (access == null) {
            if (nfsShareFound != null) {
                hosts.addAll(nfsShareFound.getNoAccessHosts());
                hosts.addAll(nfsShareFound.getRootAccessHosts());
                hosts.addAll(nfsShareFound.getReadWriteHosts());
                hosts.addAll(nfsShareFound.getReadOnlyHosts());
            }
            if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.ROOT)) {
                if (!hosts.isEmpty()) {
                    nfsModifyParam.setRootAccessHosts(hosts);
                } else {
                    nfsModifyParam.setRootAccessHosts(null);
                }
                nfsModifyParam.setNoAccessHosts(null);
                nfsModifyParam.setReadWriteHosts(null);
                nfsModifyParam.setReadOnlyHosts(null);
            } else if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.READONLY)) {
                if (!hosts.isEmpty()) {
                    nfsModifyParam.setReadOnlyHosts(hosts);
                } else {
                    nfsModifyParam.setReadOnlyHosts(null);
                }
                nfsModifyParam.setNoAccessHosts(null);
                nfsModifyParam.setReadWriteHosts(null);
                nfsModifyParam.setRootAccessHosts(null);
            } else if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.READWRITE)) {
                if (!hosts.isEmpty()) {
                    nfsModifyParam.setReadWriteHosts(hosts);
                } else {
                    nfsModifyParam.setReadWriteHosts(null);
                }
                nfsModifyParam.setNoAccessHosts(null);
                nfsModifyParam.setReadOnlyHosts(null);
                nfsModifyParam.setRootAccessHosts(null);
            } else if (nfsShareDefaultAccess.equals(NFSShareDefaultAccessEnum.NONE)) {
                if (!hosts.isEmpty()) {
                    nfsModifyParam.setNoAccessHosts(hosts);
                } else {
                    nfsModifyParam.setNoAccessHosts(null);
                }
                nfsModifyParam.setReadWriteHosts(null);
                nfsModifyParam.setReadOnlyHosts(null);
                nfsModifyParam.setRootAccessHosts(null);
            }
        }
        request.unsetQueryParameters();
        job = request.modifyShareForSnapshot(nfsShareId, nfsModifyParam);
    }
    return job;
}
Also used : VNXeFileSystemSnap(com.emc.storageos.vnxe.models.VNXeFileSystemSnap) VNXeCommandJob(com.emc.storageos.vnxe.models.VNXeCommandJob) FileSystemSnapRequests(com.emc.storageos.vnxe.requests.FileSystemSnapRequests) VNXeBase(com.emc.storageos.vnxe.models.VNXeBase) NfsShareRequests(com.emc.storageos.vnxe.requests.NfsShareRequests) NFSShareDefaultAccessEnum(com.emc.storageos.vnxe.models.NfsShareParam.NFSShareDefaultAccessEnum) NfsShareModifyForShareParam(com.emc.storageos.vnxe.models.NfsShareModifyForShareParam) VNXeNfsShare(com.emc.storageos.vnxe.models.VNXeNfsShare) ArrayList(java.util.ArrayList) NfsShareCreateForSnapParam(com.emc.storageos.vnxe.models.NfsShareCreateForSnapParam)

Aggregations

NFSShareDefaultAccessEnum (com.emc.storageos.vnxe.models.NfsShareParam.NFSShareDefaultAccessEnum)2 VNXeBase (com.emc.storageos.vnxe.models.VNXeBase)2 VNXeNfsShare (com.emc.storageos.vnxe.models.VNXeNfsShare)2 ArrayList (java.util.ArrayList)2 ModifyFileSystemParam (com.emc.storageos.vnxe.models.ModifyFileSystemParam)1 NfsShareCreateForSnapParam (com.emc.storageos.vnxe.models.NfsShareCreateForSnapParam)1 NfsShareCreateParam (com.emc.storageos.vnxe.models.NfsShareCreateParam)1 NfsShareModifyForShareParam (com.emc.storageos.vnxe.models.NfsShareModifyForShareParam)1 NfsShareModifyParam (com.emc.storageos.vnxe.models.NfsShareModifyParam)1 NfsShareParam (com.emc.storageos.vnxe.models.NfsShareParam)1 VNXeCommandJob (com.emc.storageos.vnxe.models.VNXeCommandJob)1 VNXeFileSystem (com.emc.storageos.vnxe.models.VNXeFileSystem)1 VNXeFileSystemSnap (com.emc.storageos.vnxe.models.VNXeFileSystemSnap)1 FileSystemActionRequest (com.emc.storageos.vnxe.requests.FileSystemActionRequest)1 FileSystemRequest (com.emc.storageos.vnxe.requests.FileSystemRequest)1 FileSystemSnapRequests (com.emc.storageos.vnxe.requests.FileSystemSnapRequests)1 NfsShareRequests (com.emc.storageos.vnxe.requests.NfsShareRequests)1