use of com.emc.storageos.model.NamedRelatedResourceRep in project coprhd-controller by CoprHD.
the class RemoveApplicationFullCopy method doExecute.
@Override
protected Tasks<TaskResourceRep> doExecute() throws Exception {
NamedVolumesList allFullCopies = getClient().application().getFullCopiesByApplication(applicationId);
Set<URI> fullCopyIds = new HashSet<URI>();
for (NamedRelatedResourceRep fullCopy : allFullCopies.getVolumes()) {
fullCopyIds.add(fullCopy.getId());
}
List<URI> volList = Collections.singletonList(volumeId);
VolumeGroupFullCopyDetachParam input = new VolumeGroupFullCopyDetachParam(true, volList);
TaskList taskList = getClient().application().detachApplicationFullCopy(applicationId, input);
BlockStorageUtils.removeBlockResources(fullCopyIds, VolumeDeleteTypeEnum.FULL);
return new Tasks<TaskResourceRep>(getClient().auth().getClient(), taskList.getTaskList(), TaskResourceRep.class);
}
use of com.emc.storageos.model.NamedRelatedResourceRep 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;
}
use of com.emc.storageos.model.NamedRelatedResourceRep 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;
}
use of com.emc.storageos.model.NamedRelatedResourceRep 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;
}
use of com.emc.storageos.model.NamedRelatedResourceRep in project coprhd-controller by CoprHD.
the class BlockProvider method getExportsForExportedVolume.
@Asset("volumeExport")
@AssetDependencies("exportedBlockVolume")
public List<AssetOption> getExportsForExportedVolume(AssetOptionsContext ctx, URI volumeId) {
final ViPRCoreClient client = api(ctx);
Set<NamedRelatedResourceRep> exports = getUniqueExportsForVolume(ctx, volumeId);
return createExportWithVarrayOptions(client, client.blockExports().getByRefs(exports));
}
Aggregations