Search in sources :

Example 51 with VolumeRestRep

use of com.emc.storageos.model.block.VolumeRestRep in project coprhd-controller by CoprHD.

the class BlockStorageUtils method createFullCopy.

public static Tasks<VolumeRestRep> createFullCopy(URI volumeId, String name, Integer count) {
    int countValue = (count != null) ? count : 1;
    Tasks<VolumeRestRep> copies = execute(new CreateFullCopy(volumeId, name, countValue));
    addAffectedResources(copies);
    return copies;
}
Also used : CreateFullCopy(com.emc.sa.service.vipr.block.tasks.CreateFullCopy) VolumeRestRep(com.emc.storageos.model.block.VolumeRestRep)

Example 52 with VolumeRestRep

use of com.emc.storageos.model.block.VolumeRestRep in project coprhd-controller by CoprHD.

the class BlockStorageUtils method getVolumesBySite.

public static NamedVolumesList getVolumesBySite(ViPRCoreClient client, String virtualArrayId, URI applicationId) {
    boolean isTarget = false;
    URI virtualArray = null;
    if (virtualArrayId != null && StringUtils.split(virtualArrayId, ':')[0].equals("tgt")) {
        virtualArray = URI.create(StringUtils.substringAfter(virtualArrayId, ":"));
        isTarget = true;
    } else {
        isTarget = false;
    }
    NamedVolumesList applicationVolumes = client.application().getVolumeByApplication(applicationId);
    NamedVolumesList volumesToUse = new NamedVolumesList();
    for (NamedRelatedResourceRep volumeId : applicationVolumes.getVolumes()) {
        VolumeRestRep parentVolume = client.blockVolumes().get(volumeId);
        if (isTarget) {
            if (isRPTargetVolume(parentVolume) && parentVolume.getVirtualArray().getId().equals(virtualArray)) {
                volumesToUse.getVolumes().add(volumeId);
            }
        } else {
            if (!BlockStorageUtils.isRPVolume(parentVolume) || BlockStorageUtils.isRPSourceVolume(parentVolume)) {
                volumesToUse.getVolumes().add(volumeId);
            }
        }
    }
    return volumesToUse;
}
Also used : NamedVolumesList(com.emc.storageos.model.block.NamedVolumesList) NamedRelatedResourceRep(com.emc.storageos.model.NamedRelatedResourceRep) VolumeRestRep(com.emc.storageos.model.block.VolumeRestRep) URI(java.net.URI)

Example 53 with VolumeRestRep

use of com.emc.storageos.model.block.VolumeRestRep in project coprhd-controller by CoprHD.

the class BlockStorageUtils method getReplicationGroupVolumes.

public static Table<URI, String, VolumeRestRep> getReplicationGroupVolumes(List<NamedRelatedResourceRep> volumeUris) {
    // Group volumes by storage system and replication group
    Table<URI, String, VolumeRestRep> storageRgToVolumes = HashBasedTable.create();
    for (NamedRelatedResourceRep volumeUri : volumeUris) {
        VolumeRestRep vplexVolume = null;
        VolumeRestRep volume = execute(new GetBlockVolume(volumeUri.getId()));
        boolean isVPlex = volume.getSystemType().equals("vplex");
        if (isVPlex) {
            vplexVolume = volume;
            volume = getSourceVolume(volume);
        }
        String rgName = BlockStorageUtils.stripRPTargetFromReplicationGroup(volume.getReplicationGroupInstance());
        URI storage = volume.getStorageController();
        if (!storageRgToVolumes.contains(storage, rgName)) {
            if (isVPlex) {
                storageRgToVolumes.put(storage, rgName, vplexVolume);
            } else {
                storageRgToVolumes.put(storage, rgName, volume);
            }
        }
    }
    return storageRgToVolumes;
}
Also used : GetBlockVolume(com.emc.sa.service.vipr.block.tasks.GetBlockVolume) VolumeRestRep(com.emc.storageos.model.block.VolumeRestRep) NamedRelatedResourceRep(com.emc.storageos.model.NamedRelatedResourceRep) URI(java.net.URI)

Example 54 with VolumeRestRep

use of com.emc.storageos.model.block.VolumeRestRep in project coprhd-controller by CoprHD.

the class BlockStorageUtils method removeContinuousCopy.

private static void removeContinuousCopy(URI volumeId, URI continuousCopyId, VolumeDeleteTypeEnum type) {
    if (VolumeDeleteTypeEnum.VIPR_ONLY != type) {
        BlockObjectRestRep obj = getVolume(volumeId);
        if (obj instanceof VolumeRestRep) {
            VolumeRestRep volume = (VolumeRestRep) obj;
            if (!StringUtils.equalsIgnoreCase(volume.getSystemType(), DiscoveredDataObject.Type.vplex.name())) {
                execute(new PauseContinuousCopy(volumeId, continuousCopyId, COPY_NATIVE));
            }
        }
    }
    Tasks<VolumeRestRep> tasks = execute(new DeactivateContinuousCopy(volumeId, continuousCopyId, COPY_NATIVE, type));
    addAffectedResources(tasks);
}
Also used : DeactivateContinuousCopy(com.emc.sa.service.vipr.block.tasks.DeactivateContinuousCopy) PauseContinuousCopy(com.emc.sa.service.vipr.block.tasks.PauseContinuousCopy) VolumeRestRep(com.emc.storageos.model.block.VolumeRestRep) BlockObjectRestRep(com.emc.storageos.model.block.BlockObjectRestRep)

Example 55 with VolumeRestRep

use of com.emc.storageos.model.block.VolumeRestRep in project coprhd-controller by CoprHD.

the class BlockStorageUtils method getReplicationGroupSnapshots.

public static Table<URI, String, BlockSnapshotRestRep> getReplicationGroupSnapshots(List<NamedRelatedResourceRep> volumeUris) {
    Table<URI, String, BlockSnapshotRestRep> storageRgToVolumes = HashBasedTable.create();
    for (NamedRelatedResourceRep volumeUri : volumeUris) {
        BlockSnapshotRestRep snapshot = execute(new GetBlockSnapshot(volumeUri.getId()));
        VolumeRestRep volume = execute(new GetBlockVolume(snapshot.getParent().getId()));
        String rgName = volume.getReplicationGroupInstance();
        URI storage = volume.getStorageController();
        if (!storageRgToVolumes.contains(storage, rgName)) {
            storageRgToVolumes.put(storage, rgName, snapshot);
        }
    }
    return storageRgToVolumes;
}
Also used : GetBlockVolume(com.emc.sa.service.vipr.block.tasks.GetBlockVolume) BlockSnapshotRestRep(com.emc.storageos.model.block.BlockSnapshotRestRep) GetBlockSnapshot(com.emc.sa.service.vipr.block.tasks.GetBlockSnapshot) NamedRelatedResourceRep(com.emc.storageos.model.NamedRelatedResourceRep) VolumeRestRep(com.emc.storageos.model.block.VolumeRestRep) URI(java.net.URI)

Aggregations

VolumeRestRep (com.emc.storageos.model.block.VolumeRestRep)136 URI (java.net.URI)74 ViPRCoreClient (com.emc.vipr.client.ViPRCoreClient)49 Asset (com.emc.sa.asset.annotation.Asset)35 AssetDependencies (com.emc.sa.asset.annotation.AssetDependencies)35 ArrayList (java.util.ArrayList)25 NamedRelatedResourceRep (com.emc.storageos.model.NamedRelatedResourceRep)23 AssetOption (com.emc.vipr.model.catalog.AssetOption)20 BlockSnapshotRestRep (com.emc.storageos.model.block.BlockSnapshotRestRep)13 HashSet (java.util.HashSet)13 UnManagedVolumeRestRep (com.emc.storageos.model.block.UnManagedVolumeRestRep)12 Test (org.junit.Test)12 NamedVolumesList (com.emc.storageos.model.block.NamedVolumesList)11 BlockConsistencyGroupRestRep (com.emc.storageos.model.block.BlockConsistencyGroupRestRep)10 VirtualArrayRelatedResourceRep (com.emc.storageos.model.VirtualArrayRelatedResourceRep)9 BlockObjectRestRep (com.emc.storageos.model.block.BlockObjectRestRep)8 RelatedResourceRep (com.emc.storageos.model.RelatedResourceRep)7 VolumeCreate (com.emc.storageos.model.block.VolumeCreate)7 List (java.util.List)7 SnapshotList (com.emc.storageos.model.SnapshotList)6