use of com.emc.storageos.db.client.constraint.URIQueryResultList in project coprhd-controller by CoprHD.
the class ControllerUtils method getApplicationForCG.
/**
* gets the application volume group for this CG and group name if it exists
*
* @param dbClient
* dbClient to query objects from db
* @param consistencyGroup
* consistency group object
* @param cgNameOnArray
* cg name to check
* @return a VolumeGroup object or null if this CG and group name are not associated with an application
*/
public static VolumeGroup getApplicationForCG(DbClient dbClient, BlockConsistencyGroup consistencyGroup, String cgNameOnArray) {
VolumeGroup volumeGroup = null;
URIQueryResultList uriQueryResultList = new URIQueryResultList();
dbClient.queryByConstraint(getVolumesByConsistencyGroup(consistencyGroup.getId()), uriQueryResultList);
Iterator<Volume> volumeIterator = dbClient.queryIterativeObjects(Volume.class, uriQueryResultList);
while (volumeIterator.hasNext()) {
Volume volume = volumeIterator.next();
if (NullColumnValueGetter.isNotNullValue(volume.getReplicationGroupInstance()) && volume.getReplicationGroupInstance().equals(cgNameOnArray)) {
volumeGroup = volume.getApplication(dbClient);
if (volumeGroup != null) {
break;
}
}
}
return volumeGroup;
}
use of com.emc.storageos.db.client.constraint.URIQueryResultList in project coprhd-controller by CoprHD.
the class ControllerUtils method getMirrorReplicationGroupNames.
/**
* Gets mirror replication group names from mirrors of all volumes in CG.
*/
public static Set<String> getMirrorReplicationGroupNames(List<Volume> volumes, DbClient dbClient) {
Set<String> groupNames = new HashSet<String>();
// check if replica of any of these volumes have replicationGroupInstance set
for (Volume volume : volumes) {
URIQueryResultList mirrorList = new URIQueryResultList();
dbClient.queryByConstraint(ContainmentConstraint.Factory.getVolumeBlockMirrorConstraint(volume.getId()), mirrorList);
Iterator<URI> iter = mirrorList.iterator();
while (iter.hasNext()) {
URI mirrorID = iter.next();
BlockMirror mirror = dbClient.queryObject(BlockMirror.class, mirrorID);
if (mirror != null && !mirror.getInactive() && NullColumnValueGetter.isNotNullValue(mirror.getReplicationGroupInstance())) {
groupNames.add(mirror.getReplicationGroupInstance());
}
}
if (!groupNames.isEmpty()) {
// no need to check other CG members
break;
}
}
return groupNames;
}
use of com.emc.storageos.db.client.constraint.URIQueryResultList in project coprhd-controller by CoprHD.
the class ControllerUtils method getVolumesPartOfCG.
/**
* Gets the volumes part of a given consistency group.
*/
public static List<Volume> getVolumesPartOfCG(URI cgURI, DbClient dbClient) {
List<Volume> volumes = new ArrayList<Volume>();
final URIQueryResultList uriQueryResultList = new URIQueryResultList();
dbClient.queryByConstraint(AlternateIdConstraint.Factory.getBlockObjectsByConsistencyGroup(cgURI.toString()), uriQueryResultList);
Iterator<Volume> volumeIterator = dbClient.queryIterativeObjects(Volume.class, uriQueryResultList);
while (volumeIterator.hasNext()) {
Volume volume = volumeIterator.next();
if (volume != null && !volume.getInactive()) {
volumes.add(volume);
}
}
return volumes;
}
use of com.emc.storageos.db.client.constraint.URIQueryResultList in project coprhd-controller by CoprHD.
the class ControllerUtils method getBlockSnapshotsBySnapsetLabelForProject.
/**
* Utility method which will filter the snapshots from getBlockSnapshotsBySnapsetLabel query by the
* snapshot's project
*
* @param snapshot
* @param dbClient
* @return
*/
public static List<BlockSnapshot> getBlockSnapshotsBySnapsetLabelForProject(BlockSnapshot snapshot, DbClient dbClient) {
URIQueryResultList list = new URIQueryResultList();
dbClient.queryByConstraint(AlternateIdConstraint.Factory.getBlockSnapshotsBySnapsetLabel(snapshot.getSnapsetLabel()), list);
Iterator<BlockSnapshot> resultsIt = dbClient.queryIterativeObjects(BlockSnapshot.class, list);
List<BlockSnapshot> snapshots = new ArrayList<BlockSnapshot>();
while (resultsIt.hasNext()) {
BlockSnapshot snap = resultsIt.next();
if (snapshot.getProject() != null && snapshot.getProject().getURI().equals(snap.getProject().getURI())) {
snapshots.add(snap);
}
}
return snapshots;
}
use of com.emc.storageos.db.client.constraint.URIQueryResultList in project coprhd-controller by CoprHD.
the class ControllerUtils method getFullCopiesPartOfReplicationGroup.
/**
* Gets the full copies part of a given replication group.
*/
public static List<Volume> getFullCopiesPartOfReplicationGroup(String replicationGroupInstance, DbClient dbClient) {
List<Volume> fullCopies = new ArrayList<Volume>();
URIQueryResultList uriQueryResultList = new URIQueryResultList();
dbClient.queryByConstraint(AlternateIdConstraint.Factory.getVolumeReplicationGroupInstanceConstraint(replicationGroupInstance), uriQueryResultList);
Iterator<Volume> itr = dbClient.queryIterativeObjects(Volume.class, uriQueryResultList);
while (itr.hasNext()) {
Volume fullCopy = itr.next();
if (fullCopy != null && !fullCopy.getInactive()) {
fullCopies.add(fullCopy);
}
}
return fullCopies;
}
Aggregations