Search in sources :

Example 1 with Target

use of com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target in project coprhd-controller by CoprHD.

the class FileMirrorScheduler method prepareTargetFileRecommendation.

private void prepareTargetFileRecommendation(final String fsCopyMode, final VirtualArray targetVarray, FileRecommendation targetFileRecommendation, FileMirrorRecommendation fileMirrorRecommendation) {
    // Set target recommendations!!!
    Target target = new Target();
    target.setTargetPool(targetFileRecommendation.getSourceStoragePool());
    target.setTargetStorageDevice(targetFileRecommendation.getSourceStorageSystem());
    if (targetFileRecommendation.getStoragePorts() != null) {
        target.setTargetStoragePortUris(targetFileRecommendation.getStoragePorts());
    }
    if (targetFileRecommendation.getvNAS() != null) {
        target.setTargetvNASURI(targetFileRecommendation.getvNAS());
    }
    if (fileMirrorRecommendation.getVirtualArrayTargetMap() == null) {
        fileMirrorRecommendation.setVirtualArrayTargetMap(new HashMap<URI, FileMirrorRecommendation.Target>());
    }
    fileMirrorRecommendation.getVirtualArrayTargetMap().put(targetVarray.getId(), target);
    // File replication copy mode
    fileMirrorRecommendation.setCopyMode(fsCopyMode);
}
Also used : FileReplicaPolicyTarget(com.emc.storageos.db.client.model.FileReplicaPolicyTarget) Target(com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target) URI(java.net.URI)

Example 2 with Target

use of com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target in project coprhd-controller by CoprHD.

the class FileMirrorServiceApiImpl method setFileMirrorRecommendation.

/**
 * Prepare the source and target filesystem using Recommandations
 *
 * @param placement
 * @param vpoolSource
 * @param vpoolTarget
 * @param isTargetFS
 * @param createInactive
 * @param fileShare
 */
public void setFileMirrorRecommendation(FileMirrorRecommendation placement, final VirtualPool virtualPool, final VirtualArray virtualArray, final boolean isTargetFS, final Boolean createInactive, FileShare fileShare) {
    StoragePool pool = null;
    if (isTargetFS == false) {
        if (null != placement.getSourceStoragePool()) {
            pool = _dbClient.queryObject(StoragePool.class, placement.getSourceStoragePool());
        }
        fileShare.setPersonality(FileShare.PersonalityTypes.SOURCE.toString());
        fileShare.setAccessState(FileAccessState.READWRITE.name());
        // set the storage ports
        if (placement.getStoragePorts() != null && !placement.getStoragePorts().isEmpty()) {
            fileShare.setStoragePort(placement.getStoragePorts().get(0));
        }
        // set vnas server
        if (placement.getvNAS() != null) {
            fileShare.setVirtualNAS(placement.getvNAS());
        }
    } else {
        Map<URI, FileMirrorRecommendation.Target> targetMap = placement.getVirtualArrayTargetMap();
        if (targetMap != null) {
            Target target = targetMap.get(virtualArray.getId());
            if (target != null) {
                pool = _dbClient.queryObject(StoragePool.class, target.getTargetStoragePool());
                fileShare.setPersonality(FileShare.PersonalityTypes.TARGET.toString());
                fileShare.setAccessState(FileAccessState.READABLE.name());
                // set the target ports
                if (target.getTargetStoragePortUris() != null && !target.getTargetStoragePortUris().isEmpty()) {
                    fileShare.setStoragePort(target.getTargetStoragePortUris().get(0));
                }
                // set the target vNAS
                if (target.getTargetvNASURI() != null) {
                    fileShare.setVirtualNAS(target.getTargetvNASURI());
                }
            }
        }
    }
    // set vpool
    if (null != pool) {
        fileShare.setStorageDevice(pool.getStorageDevice());
        fileShare.setPool(pool.getId());
        fileShare.setProtocol(new StringSet());
        fileShare.getProtocol().addAll(VirtualPoolUtil.getMatchingProtocols(virtualPool.getProtocols(), virtualPool.getProtocols()));
    }
    _dbClient.updateObject(fileShare);
    // finally set file share id in recommendation
    placement.setId(fileShare.getId());
}
Also used : Target(com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target) StoragePool(com.emc.storageos.db.client.model.StoragePool) StringSet(com.emc.storageos.db.client.model.StringSet) NamedURI(com.emc.storageos.db.client.model.NamedURI) URI(java.net.URI)

Example 3 with Target

use of com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target in project coprhd-controller by CoprHD.

the class FilePolicyService method convertRecommendationsToStorageSystemAssociations.

private List<FileStorageSystemAssociation> convertRecommendationsToStorageSystemAssociations(List<FileRecommendation> recs, String appliedAt, URI vPoolURI, URI projectURI) {
    List<FileStorageSystemAssociation> associations = new ArrayList<FileStorageSystemAssociation>();
    for (FileRecommendation rec : recs) {
        FileMirrorRecommendation mirrorRec = (FileMirrorRecommendation) rec;
        FileStorageSystemAssociation association = new FileStorageSystemAssociation();
        association.setSourceSystem(mirrorRec.getSourceStorageSystem());
        association.setSourceVNAS(mirrorRec.getvNAS());
        if (appliedAt.equalsIgnoreCase(FilePolicyApplyLevel.vpool.name())) {
            association.setAppliedAtResource(vPoolURI);
        } else if (appliedAt.equalsIgnoreCase(FilePolicyApplyLevel.project.name())) {
            association.setProjectvPool(vPoolURI);
            association.setAppliedAtResource(projectURI);
        }
        Map<URI, Target> virtualArrayTargetMap = mirrorRec.getVirtualArrayTargetMap();
        // Getting the first target because we support one-to-one replication now.
        URI targetVArray = virtualArrayTargetMap.entrySet().iterator().next().getKey();
        Target target = virtualArrayTargetMap.entrySet().iterator().next().getValue();
        URI targetStorageDevice = target.getTargetStorageDevice();
        URI targetVNasURI = target.getTargetvNASURI();
        TargetAssociation targetAssociation = new TargetAssociation();
        targetAssociation.setStorageSystemURI(targetStorageDevice);
        targetAssociation.setvArrayURI(targetVArray);
        targetAssociation.setvNASURI(targetVNasURI);
        association.addTargetAssociation(targetAssociation);
        associations.add(association);
    }
    return associations;
}
Also used : FileStorageSystemAssociation(com.emc.storageos.fileorchestrationcontroller.FileStorageSystemAssociation) Target(com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target) FileRecommendation(com.emc.storageos.api.service.impl.placement.FileRecommendation) TargetAssociation(com.emc.storageos.fileorchestrationcontroller.FileStorageSystemAssociation.TargetAssociation) ArrayList(java.util.ArrayList) FileMirrorRecommendation(com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation) URI(java.net.URI)

Aggregations

Target (com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target)3 URI (java.net.URI)3 FileMirrorRecommendation (com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation)1 FileRecommendation (com.emc.storageos.api.service.impl.placement.FileRecommendation)1 FileReplicaPolicyTarget (com.emc.storageos.db.client.model.FileReplicaPolicyTarget)1 NamedURI (com.emc.storageos.db.client.model.NamedURI)1 StoragePool (com.emc.storageos.db.client.model.StoragePool)1 StringSet (com.emc.storageos.db.client.model.StringSet)1 FileStorageSystemAssociation (com.emc.storageos.fileorchestrationcontroller.FileStorageSystemAssociation)1 TargetAssociation (com.emc.storageos.fileorchestrationcontroller.FileStorageSystemAssociation.TargetAssociation)1 ArrayList (java.util.ArrayList)1