/*
* Copyright (c) 2008-2011 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.constraint;
import java.net.URI;
import java.util.Date;
import com.emc.storageos.db.client.constraint.impl.ContainmentConstraintImpl;
import com.emc.storageos.db.client.constraint.impl.TimedContainmentConstraintImpl;
import com.emc.storageos.db.client.impl.ColumnField;
import com.emc.storageos.db.client.impl.DataObjectType;
import com.emc.storageos.db.client.impl.TypeMap;
import com.emc.storageos.db.client.model.ActionableEvent;
import com.emc.storageos.db.client.model.AutoTieringPolicy;
import com.emc.storageos.db.client.model.BlockConsistencyGroup;
import com.emc.storageos.db.client.model.BlockMirror;
import com.emc.storageos.db.client.model.BlockSnapshot;
import com.emc.storageos.db.client.model.BlockSnapshotSession;
import com.emc.storageos.db.client.model.Bucket;
import com.emc.storageos.db.client.model.CifsShareACL;
import com.emc.storageos.db.client.model.ComputeBootDef;
import com.emc.storageos.db.client.model.ComputeBootPolicy;
import com.emc.storageos.db.client.model.ComputeElement;
import com.emc.storageos.db.client.model.ComputeElementHBA;
import com.emc.storageos.db.client.model.ComputeFabricUplinkPort;
import com.emc.storageos.db.client.model.ComputeFabricUplinkPortChannel;
import com.emc.storageos.db.client.model.ComputeImageJob;
import com.emc.storageos.db.client.model.ComputeImageServer;
import com.emc.storageos.db.client.model.ComputeLanBoot;
import com.emc.storageos.db.client.model.ComputeLanBootImagePath;
import com.emc.storageos.db.client.model.ComputeSanBoot;
import com.emc.storageos.db.client.model.ComputeSanBootImage;
import com.emc.storageos.db.client.model.ComputeSanBootImagePath;
import com.emc.storageos.db.client.model.ComputeVirtualPool;
import com.emc.storageos.db.client.model.ComputeVnic;
import com.emc.storageos.db.client.model.DataObject;
import com.emc.storageos.db.client.model.ExportGroup;
import com.emc.storageos.db.client.model.ExportMask;
import com.emc.storageos.db.client.model.FCEndpoint;
import com.emc.storageos.db.client.model.FileExportRule;
import com.emc.storageos.db.client.model.FileMountInfo;
import com.emc.storageos.db.client.model.FileReplicationTopology;
import com.emc.storageos.db.client.model.FileShare;
import com.emc.storageos.db.client.model.Host;
import com.emc.storageos.db.client.model.Migration;
import com.emc.storageos.db.client.model.NFSShareACL;
import com.emc.storageos.db.client.model.Network;
import com.emc.storageos.db.client.model.NetworkSystem;
import com.emc.storageos.db.client.model.ObjectBucketACL;
import com.emc.storageos.db.client.model.ObjectNamespace;
import com.emc.storageos.db.client.model.PolicyStorageResource;
import com.emc.storageos.db.client.model.Project;
import com.emc.storageos.db.client.model.ProtectionSet;
import com.emc.storageos.db.client.model.ProxyToken;
import com.emc.storageos.db.client.model.QuotaDirectory;
import com.emc.storageos.db.client.model.RemoteDirectorGroup;
import com.emc.storageos.db.client.model.SchedulePolicy;
import com.emc.storageos.db.client.model.Snapshot;
import com.emc.storageos.db.client.model.StorageHADomain;
import com.emc.storageos.db.client.model.StoragePool;
import com.emc.storageos.db.client.model.StoragePort;
import com.emc.storageos.db.client.model.StorageSystem;
import com.emc.storageos.db.client.model.StorageTier;
import com.emc.storageos.db.client.model.Task;
import com.emc.storageos.db.client.model.TenantOrg;
import com.emc.storageos.db.client.model.Token;
import com.emc.storageos.db.client.model.UCSServiceProfile;
import com.emc.storageos.db.client.model.UCSServiceProfileTemplate;
import com.emc.storageos.db.client.model.UCSVhbaTemplate;
import com.emc.storageos.db.client.model.UCSVnicTemplate;
import com.emc.storageos.db.client.model.VirtualNAS;
import com.emc.storageos.db.client.model.VirtualPool;
import com.emc.storageos.db.client.model.Volume;
import com.emc.storageos.db.client.model.VolumeGroup;
import com.emc.storageos.db.client.model.WorkflowStep;
import com.emc.storageos.db.client.model.WorkflowStepData;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedCifsShareACL;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedConsistencyGroup;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedExportMask;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedFileExportRule;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedFileSystem;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedNFSShareACL;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedProtectionSet;
import com.emc.storageos.db.client.model.UnManagedDiscoveredObjects.UnManagedVolume;
import com.emc.storageos.db.client.model.uimodels.Order;
/**
* Containment constraint. For example, relationship between StorageDevice and
* Volume can be queried using this constraint.
*/
public interface ContainmentConstraint extends Constraint {
/**
* Factory for creating containment constraints for various relationships
*/
class Factory {
private static final String COMPUTE_SYSTEM = "computeSystem";
private static final String FILE_SYSTEM_ID = "fileSystemId";
private static final String FILE_PROTECTION_POLICY_ID = "policyId";
private static final String PROJECT = "project";
private static final String STORAGE_DEVICE = "storageDevice";
private static final String COMPUTE_IMAGESERVER_ID = "computeImageServerId";
private static final String PROTECTION_DEVICE = "protectionDevice";
private static final String HOST_ID = "hostId";
public static ContainmentConstraint getTenantOrgProjectConstraint(URI tenantOrg) {
DataObjectType doType = TypeMap.getDoType(Project.class);
ColumnField field = doType.getColumnField("tenantOrg");
return new ContainmentConstraintImpl(tenantOrg, Project.class, field);
}
public static ContainmentConstraint getTenantOrgSubTenantConstraint(URI tenantOrg) {
DataObjectType doType = TypeMap.getDoType(TenantOrg.class);
ColumnField field = doType.getColumnField("parentTenant");
return new ContainmentConstraintImpl(tenantOrg, TenantOrg.class, field);
}
public static ContainmentConstraint getProjectVolumeConstraint(URI project) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, Volume.class, field);
}
public static ContainmentConstraint getStoragePoolVolumeConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField("pool");
return new ContainmentConstraintImpl(pool, Volume.class, field);
}
public static ContainmentConstraint getVirtualArrayVolumeConstraint(URI varray) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField("varray");
return new ContainmentConstraintImpl(varray, Volume.class, field);
}
public static ContainmentConstraint getVirtualPoolVolumeConstraint(URI vpool) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField("virtualPool");
return new ContainmentConstraintImpl(vpool, Volume.class, field);
}
public static ContainmentConstraint getStorageDeviceStorageHADomainConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(StorageHADomain.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, StorageHADomain.class, field);
}
public static ContainmentConstraint getProjectFileshareConstraint(URI project) {
DataObjectType doType = TypeMap.getDoType(FileShare.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, FileShare.class, field);
}
public static ContainmentConstraint getProjectBucketConstraint(URI project) {
DataObjectType doType = TypeMap.getDoType(Bucket.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, Bucket.class, field);
}
public static ContainmentConstraint getStoragePoolFileshareConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(FileShare.class);
ColumnField field = doType.getColumnField("pool");
return new ContainmentConstraintImpl(pool, FileShare.class, field);
}
public static ContainmentConstraint getVirtualPoolFileshareConstraint(URI vpool) {
DataObjectType doType = TypeMap.getDoType(FileShare.class);
ColumnField field = doType.getColumnField("virtualPool");
return new ContainmentConstraintImpl(vpool, FileShare.class, field);
}
public static ContainmentConstraint getVirtualArrayBucketsConstraint(URI varray) {
DataObjectType doType = TypeMap.getDoType(Bucket.class);
ColumnField field = doType.getColumnField("varray");
return new ContainmentConstraintImpl(varray, Bucket.class, field);
}
public static ContainmentConstraint getStoragePoolBucketConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(Bucket.class);
ColumnField field = doType.getColumnField("pool");
return new ContainmentConstraintImpl(pool, Bucket.class, field);
}
public static ContainmentConstraint getVirtualPoolBucketConstraint(URI vpool) {
DataObjectType doType = TypeMap.getDoType(Bucket.class);
ColumnField field = doType.getColumnField("virtualPool");
return new ContainmentConstraintImpl(vpool, Bucket.class, field);
}
public static ContainmentConstraint getFileshareSnapshotConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(Snapshot.class);
ColumnField field = doType.getColumnField("parent");
return new ContainmentConstraintImpl(fs, Snapshot.class, field);
}
public static ContainmentConstraint getQuotaDirectoryConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(QuotaDirectory.class);
ColumnField field = doType.getColumnField("parent");
return new ContainmentConstraintImpl(fs, QuotaDirectory.class, field);
}
public static ContainmentConstraint getVirtualComputePoolHostConstraint(URI vcp) {
DataObjectType doType = TypeMap.getDoType(Host.class);
ColumnField field = doType.getColumnField("computeVirtualPoolId");
return new ContainmentConstraintImpl(vcp, Host.class, field);
}
public static ContainmentConstraint getStorageDeviceVolumeConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, Volume.class, field);
}
public static ContainmentConstraint getStorageDeviceUnManagedVolumeConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(UnManagedVolume.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, UnManagedVolume.class, field);
}
public static ContainmentConstraint getStorageDeviceUnManagedCGConstraint(URI ps) {
DataObjectType doType = TypeMap.getDoType(UnManagedProtectionSet.class);
ColumnField field = doType.getColumnField(PROTECTION_DEVICE);
return new ContainmentConstraintImpl(ps, UnManagedProtectionSet.class, field);
}
public static ContainmentConstraint getStorageDeviceRemoteGroupsConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(RemoteDirectorGroup.class);
ColumnField field = doType.getColumnField("sourceStorageSystem");
return new ContainmentConstraintImpl(device, RemoteDirectorGroup.class, field);
}
public static ContainmentConstraint getStorageDeviceUnManagedFileSystemConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(UnManagedFileSystem.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, UnManagedFileSystem.class, field);
}
public static ContainmentConstraint getStorageDeviceFileshareConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(FileShare.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, FileShare.class, field);
}
public static ContainmentConstraint getStorageDeviceStoragePoolConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(StoragePool.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, StoragePool.class, field);
}
public static ContainmentConstraint getStorageDeviceFASTPolicyConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(AutoTieringPolicy.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, AutoTieringPolicy.class, field);
}
public static ContainmentConstraint getStorageDeviceExportMaskConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(ExportMask.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, ExportMask.class, field);
}
public static ContainmentConstraint getStorageDeviceStorageTierConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(StorageTier.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, StorageTier.class, field);
}
public static ContainmentConstraint getStorageDeviceSnapshotConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshot.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, BlockSnapshot.class, field);
}
public static ContainmentConstraint getStorageDeviceMirrorConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(BlockMirror.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, BlockMirror.class, field);
}
public static ContainmentConstraint getVirtualArrayVirtualPoolConstraint(URI varray) {
DataObjectType doType = TypeMap.getDoType(VirtualPool.class);
ColumnField field = doType.getColumnField("virtualArrays");
return new ContainmentConstraintImpl(varray, VirtualPool.class, field);
}
public static ContainmentConstraint getStorageDeviceStoragePortConstraint(URI portGroup) {
DataObjectType doType = TypeMap.getDoType(StoragePort.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(portGroup, StoragePort.class, field);
}
public static ContainmentConstraint getStorageHADomainStoragePortConstraint(URI portGroup) {
DataObjectType doType = TypeMap.getDoType(StoragePort.class);
ColumnField field = doType.getColumnField("storageHADomain");
return new ContainmentConstraintImpl(portGroup, StoragePort.class, field);
}
public static ContainmentConstraint getStorageDeviceVirtualNasConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(VirtualNAS.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, VirtualNAS.class, field);
}
public static ContainmentConstraint getVirtualArrayStorageDeviceConstraint(URI varray) {
DataObjectType doType = TypeMap.getDoType(StorageSystem.class);
ColumnField field = doType.getColumnField("varray");
return new ContainmentConstraintImpl(varray, StorageSystem.class, field);
}
public static ContainmentConstraint getProjectExportGroupConstraint(
URI project) {
DataObjectType doType = TypeMap.getDoType(ExportGroup.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, ExportGroup.class, field);
}
public static ContainmentConstraint getVolumeSnapshotConstraint(URI volume) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshot.class);
ColumnField field = doType.getColumnField("parent");
return new ContainmentConstraintImpl(volume, BlockSnapshot.class, field);
}
public static ContainmentConstraint getParentSnapshotSessionConstraint(URI parentURI) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshotSession.class);
ColumnField field = doType.getColumnField("parent");
return new ContainmentConstraintImpl(parentURI, BlockSnapshotSession.class, field);
}
public static ContainmentConstraint getLinkedTargetSnapshotSessionConstraint(URI snapshotURI) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshotSession.class);
ColumnField field = doType.getColumnField("linkedTargets");
return new ContainmentConstraintImpl(snapshotURI, BlockSnapshotSession.class, field);
}
public static ContainmentConstraint getProjectBlockSnapshotSessionConstraint(
URI project) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshotSession.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, BlockSnapshotSession.class, field);
}
public static ContainmentConstraint getProjectBlockSnapshotConstraint(
URI project) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshot.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, BlockSnapshot.class, field);
}
public static ContainmentConstraint getProjectFileSnapshotConstraint(
URI project) {
DataObjectType doType = TypeMap.getDoType(Snapshot.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, Snapshot.class, field);
}
public static ContainmentConstraint getBlockSnapshotConsitencyConstraint(URI volume) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField("consistentWithVolume");
return new ContainmentConstraintImpl(volume, Volume.class, field);
}
public static ContainmentConstraint getNetworkSystemFCPortConnectionConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(FCEndpoint.class);
ColumnField field = doType.getColumnField("networkDevice");
return new ContainmentConstraintImpl(device, FCEndpoint.class, field);
}
public static ContainmentConstraint getNetworkSystemNetworkConstraint(URI networkSystem) {
DataObjectType doType = TypeMap.getDoType(Network.class);
ColumnField field = doType.getColumnField("networkSystems");
return new ContainmentConstraintImpl(networkSystem, Network.class, field);
}
public static ContainmentConstraint getBlockObjectExportGroupConstraint(URI blockObject) {
DataObjectType doType = TypeMap.getDoType(ExportGroup.class);
ColumnField field = doType.getColumnField("volumes");
return new ContainmentConstraintImpl(blockObject, ExportGroup.class, field);
}
public static ContainmentConstraint getUserIdTokenConstraint(URI userId) {
DataObjectType doType = TypeMap.getDoType(Token.class);
ColumnField field = doType.getColumnField("userid");
return new ContainmentConstraintImpl(userId, Token.class, field);
}
public static ContainmentConstraint getUserIdProxyTokenConstraint(URI userId) {
DataObjectType doType = TypeMap.getDoType(ProxyToken.class);
ColumnField field = doType.getColumnField("lastKnownIds");
return new ContainmentConstraintImpl(userId, ProxyToken.class, field);
}
public static ContainmentConstraint getWorkflowWorkflowStepConstraint(URI workflow) {
DataObjectType doType = TypeMap.getDoType(WorkflowStep.class);
ColumnField field = doType.getColumnField("workflow");
return new ContainmentConstraintImpl(workflow, WorkflowStep.class, field);
}
public static ContainmentConstraint getWorkflowStepDataConstraint(URI workflow) {
DataObjectType doType = TypeMap.getDoType(WorkflowStepData.class);
ColumnField field = doType.getColumnField("workflow");
return new ContainmentConstraintImpl(workflow, WorkflowStepData.class, field);
}
public static Constraint getProjectProtectionSetConstraint(URI project) {
DataObjectType doType = TypeMap.getDoType(ProtectionSet.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, ProtectionSet.class, field);
}
public static Constraint getProtectionSystemProtectionSetConstraint(URI protectionSystem) {
DataObjectType doType = TypeMap.getDoType(ProtectionSet.class);
ColumnField field = doType.getColumnField("protectionSystem");
return new ContainmentConstraintImpl(protectionSystem, ProtectionSet.class, field);
}
public static Constraint getProtectionSetBlockSnapshotConstraint(URI protectionSet) {
DataObjectType doType = TypeMap.getDoType(BlockSnapshot.class);
ColumnField field = doType.getColumnField("protectionSet");
return new ContainmentConstraintImpl(protectionSet, BlockSnapshot.class, field);
}
public static Constraint getProtectionSystemVolumesConstraint(URI protectionSystem) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField("protectionDevice");
return new ContainmentConstraintImpl(protectionSystem, Volume.class, field);
}
public static ContainmentConstraint getConstraint(Class<? extends DataObject> type,
String columnField,
URI resourceUri) {
DataObjectType doType = TypeMap.getDoType(type);
ColumnField field = doType.getColumnField(columnField);
return new ContainmentConstraintImpl(resourceUri, type, field);
}
public static ContainmentConstraint getVolumeBlockMirrorConstraint(URI volume) {
DataObjectType doType = TypeMap.getDoType(BlockMirror.class);
ColumnField field = doType.getColumnField("source");
return new ContainmentConstraintImpl(volume, BlockMirror.class, field);
}
public static ContainmentConstraint getMatchedPoolVirtualPoolConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(VirtualPool.class);
ColumnField field = doType.getColumnField("matchedPools");
return new ContainmentConstraintImpl(pool, VirtualPool.class, field);
}
public static ContainmentConstraint getAssignedPoolVirtualPoolConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(VirtualPool.class);
ColumnField field = doType.getColumnField("assignedStoragePools");
return new ContainmentConstraintImpl(pool, VirtualPool.class, field);
}
public static ContainmentConstraint getPoolUnManagedVolumeConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(UnManagedVolume.class);
ColumnField field = doType.getColumnField("storagePool");
return new ContainmentConstraintImpl(pool, UnManagedVolume.class, field);
}
public static ContainmentConstraint getStorageSystemUnManagedVolumeConstraint(URI storageSystem) {
DataObjectType doType = TypeMap.getDoType(UnManagedVolume.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(storageSystem, UnManagedVolume.class, field);
}
public static ContainmentConstraint getPoolUnManagedFileSystemConstraint(URI pool) {
DataObjectType doType = TypeMap.getDoType(UnManagedFileSystem.class);
ColumnField field = doType.getColumnField("storagePool");
return new ContainmentConstraintImpl(pool, UnManagedFileSystem.class, field);
}
public static ContainmentConstraint getStorageSystemUnManagedExportMaskConstraint(URI storageSystem) {
DataObjectType doType = TypeMap.getDoType(UnManagedExportMask.class);
ColumnField field = doType.getColumnField("storageSystem");
return new ContainmentConstraintImpl(storageSystem, UnManagedExportMask.class, field);
}
public static ContainmentConstraint getStorageSystemUnManagedCGConstraint(URI storageSystem) {
DataObjectType doType = TypeMap.getDoType(UnManagedConsistencyGroup.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(storageSystem, UnManagedConsistencyGroup.class, field);
}
public static ContainmentConstraint getContainedObjectsConstraint(URI parent,
Class<? extends DataObject> clzz, String fieldName) {
DataObjectType doType = TypeMap.getDoType(clzz);
ColumnField field = doType.getColumnField(fieldName);
return new ContainmentConstraintImpl(parent, clzz, field);
}
public static ContainmentConstraint getProjectBlockConsistencyGroupConstraint(URI project) {
DataObjectType doType = TypeMap.getDoType(BlockConsistencyGroup.class);
ColumnField field = doType.getColumnField(PROJECT);
return new ContainmentConstraintImpl(project, BlockConsistencyGroup.class, field);
}
public static ContainmentConstraint getVolumesByConsistencyGroup(final URI cgId) {
return getConstraint(Volume.class, "consistencyGroup", cgId);
}
public static ContainmentConstraint getBlockSnapshotByConsistencyGroup(final URI cgId) {
return getConstraint(BlockSnapshot.class, "consistencyGroup", cgId);
}
public static ContainmentConstraint getBlockSnapshotSessionByConsistencyGroup(URI cgId) {
return getConstraint(BlockSnapshotSession.class, "consistencyGroup", cgId);
}
public static ContainmentConstraint getExportMaskExportGroupConstraint(URI id) {
DataObjectType doType = TypeMap.getDoType(ExportGroup.class);
ColumnField field = doType.getColumnField("exportMasks");
return new ContainmentConstraintImpl(id, ExportGroup.class, field);
}
public static ContainmentConstraint getComputeSystemComputeElemetsConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(ComputeElement.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, ComputeElement.class, field);
}
public static ContainmentConstraint getComputeSystemServiceProfilesConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(UCSServiceProfile.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, UCSServiceProfile.class, field);
}
public static ContainmentConstraint getComputeImageJobsByComputeImageConstraint(URI ciId) {
DataObjectType doType = TypeMap.getDoType(ComputeImageJob.class);
ColumnField field = doType.getColumnField("computeImageId");
return new ContainmentConstraintImpl(ciId, ComputeImageJob.class, field);
}
public static ContainmentConstraint getComputeImageJobsByHostConstraint(URI hostId) {
DataObjectType doType = TypeMap.getDoType(ComputeImageJob.class);
ColumnField field = doType.getColumnField("hostId");
return new ContainmentConstraintImpl(hostId, ComputeImageJob.class, field);
}
public static ContainmentConstraint getComputeSystemServiceProfileTemplateConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(UCSServiceProfileTemplate.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, UCSServiceProfileTemplate.class, field);
}
public static ContainmentConstraint getComputeSystemComputeFabricUplinkPortConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(ComputeFabricUplinkPort.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, ComputeFabricUplinkPort.class, field);
}
public static ContainmentConstraint getComputeSystemComputeUplinkPortChannelConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(ComputeFabricUplinkPortChannel.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, ComputeFabricUplinkPortChannel.class, field);
}
public static ContainmentConstraint getComputeElementComputeElemetHBAsConstraint(URI ceId) {
DataObjectType doType = TypeMap.getDoType(ComputeElementHBA.class);
ColumnField field = doType.getColumnField("computeElement");
return new ContainmentConstraintImpl(ceId, ComputeElementHBA.class, field);
}
public static ContainmentConstraint getHostComputeElemetHBAsConstraint(URI hostId) {
DataObjectType doType = TypeMap.getDoType(ComputeElementHBA.class);
ColumnField field = doType.getColumnField("host");
return new ContainmentConstraintImpl(hostId, ComputeElementHBA.class, field);
}
public static ContainmentConstraint getComputeSystemVnicTemplateConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(UCSVnicTemplate.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, UCSVnicTemplate.class, field);
}
public static ContainmentConstraint getComputeSystemVhbaTemplateConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(UCSVhbaTemplate.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, UCSVhbaTemplate.class, field);
}
public static ContainmentConstraint getComputeSystemBootPolicyConstraint(URI csId) {
DataObjectType doType = TypeMap.getDoType(ComputeBootPolicy.class);
ColumnField field = doType.getColumnField(COMPUTE_SYSTEM);
return new ContainmentConstraintImpl(csId, ComputeBootPolicy.class, field);
}
public static ContainmentConstraint getServiceProfileTemplateComputeBootDefsConstraint(URI sptId) {
DataObjectType doType = TypeMap.getDoType(ComputeBootDef.class);
ColumnField field = doType.getColumnField("serviceProfileTemplate");
return new ContainmentConstraintImpl(sptId, ComputeBootDef.class, field);
}
public static ContainmentConstraint getComputeBootDefComputeLanBootConstraint(URI bootDefId) {
DataObjectType doType = TypeMap.getDoType(ComputeLanBoot.class);
ColumnField field = doType.getColumnField("computeBootDef");
return new ContainmentConstraintImpl(bootDefId, ComputeLanBoot.class, field);
}
public static ContainmentConstraint getComputeBootPolicyComputeLanBootConstraint(URI bootPolicyId) {
DataObjectType doType = TypeMap.getDoType(ComputeLanBoot.class);
ColumnField field = doType.getColumnField("computeBootPolicy");
return new ContainmentConstraintImpl(bootPolicyId, ComputeLanBoot.class, field);
}
public static ContainmentConstraint getComputeLanBootImagePathsConstraint(URI lanBootId) {
DataObjectType doType = TypeMap.getDoType(ComputeLanBootImagePath.class);
ColumnField field = doType.getColumnField("computeLanBoot");
return new ContainmentConstraintImpl(lanBootId, ComputeLanBootImagePath.class, field);
}
public static ContainmentConstraint getComputeBootPolicyComputeSanBootConstraint(URI bootPolicyId) {
DataObjectType doType = TypeMap.getDoType(ComputeSanBoot.class);
ColumnField field = doType.getColumnField("computeBootPolicy");
return new ContainmentConstraintImpl(bootPolicyId, ComputeSanBoot.class, field);
}
public static ContainmentConstraint getComputeBootDefComputeSanBootConstraint(URI bootDefId) {
DataObjectType doType = TypeMap.getDoType(ComputeSanBoot.class);
ColumnField field = doType.getColumnField("computeBootDef");
return new ContainmentConstraintImpl(bootDefId, ComputeSanBoot.class, field);
}
public static ContainmentConstraint getComputeSanBootImageConstraint(URI sanBootId) {
DataObjectType doType = TypeMap.getDoType(ComputeSanBootImage.class);
ColumnField field = doType.getColumnField("computeSanBoot");
return new ContainmentConstraintImpl(sanBootId, ComputeSanBootImage.class, field);
}
public static ContainmentConstraint getComputeSanBootImagePathConstraint(URI sanBootImageId) {
DataObjectType doType = TypeMap.getDoType(ComputeSanBootImagePath.class);
ColumnField field = doType.getColumnField("computeSanBootImage");
return new ContainmentConstraintImpl(sanBootImageId, ComputeSanBootImagePath.class, field);
}
public static ContainmentConstraint getServiceProfileTemplateComputeElemetHBAsConstraint(URI sptId) {
DataObjectType doType = TypeMap.getDoType(ComputeElementHBA.class);
ColumnField field = doType.getColumnField("serviceProfileTemplate");
return new ContainmentConstraintImpl(sptId, ComputeElementHBA.class, field);
}
public static ContainmentConstraint getServiceProfileTemplateComputeVnicsConstraint(URI sptId) {
DataObjectType doType = TypeMap.getDoType(ComputeVnic.class);
ColumnField field = doType.getColumnField("serviceProfileTemplate");
return new ContainmentConstraintImpl(sptId, ComputeVnic.class, field);
}
public static ContainmentConstraint getVolumeExportGroupConstraint(URI id) {
DataObjectType doType = TypeMap.getDoType(ExportGroup.class);
ColumnField field = doType.getColumnField("volumes");
return new ContainmentConstraintImpl(id, ExportGroup.class, field);
}
public static ContainmentConstraint getHostComputeElementConstraint(URI id) {
DataObjectType doType = TypeMap.getDoType(Host.class);
ColumnField field = doType.getColumnField("computeElement");
return new ContainmentConstraintImpl(id, Host.class, field);
}
public static ContainmentConstraint getMatchedComputeElementComputeVirtualPoolConstraint(URI computeElement) {
DataObjectType doType = TypeMap.getDoType(ComputeVirtualPool.class);
ColumnField field = doType.getColumnField("matchedComputeElements");
return new ContainmentConstraintImpl(computeElement, ComputeVirtualPool.class, field);
}
public static ContainmentConstraint getResourceTaskConstraint(URI resourceId) {
DataObjectType doType = TypeMap.getDoType(Task.class);
ColumnField field = doType.getColumnField("resource");
return new ContainmentConstraintImpl(resourceId, Task.class, field);
}
public static ContainmentConstraint getResourceEventConstraint(URI resourceId) {
DataObjectType doType = TypeMap.getDoType(ActionableEvent.class);
ColumnField field = doType.getColumnField("resource");
return new ContainmentConstraintImpl(resourceId, ActionableEvent.class, field);
}
public static ContainmentConstraint getAffectedResourceEventConstraint(URI resourceId) {
DataObjectType doType = TypeMap.getDoType(ActionableEvent.class);
ColumnField field = doType.getColumnField("affectedResources");
return new ContainmentConstraintImpl(resourceId, ActionableEvent.class, field);
}
public static ContainmentConstraint getTenantOrgTaskConstraint(URI tenantId) {
DataObjectType doType = TypeMap.getDoType(Task.class);
ColumnField field = doType.getColumnField("tenant");
return new ContainmentConstraintImpl(tenantId, Task.class, field);
}
/**
* Returns all tasks for the tenant that were created between startTime and endTime
*/
public static Constraint getTimedTenantOrgTaskConstraint(URI tenantId, Date startTime, Date endTime) {
DataObjectType doType = TypeMap.getDoType(Task.class);
ColumnField field = doType.getColumnField("tenant");
return new TimedContainmentConstraintImpl(tenantId,
startTime == null ? -1 : startTime.getTime(),
endTime == null ? -1 : endTime.getTime(),
Task.class, field);
}
public static ContainmentConstraint getFileExportRulesConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(FileExportRule.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fs, FileExportRule.class, field);
}
public static ContainmentConstraint getFileMountsConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(FileMountInfo.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fs, FileMountInfo.class, field);
}
public static ContainmentConstraint getHostFileMountsConstraint(URI host) {
DataObjectType doType = TypeMap.getDoType(FileMountInfo.class);
ColumnField field = doType.getColumnField(HOST_ID);
return new ContainmentConstraintImpl(host, FileMountInfo.class, field);
}
public static ContainmentConstraint getSnapshotExportRulesConstraint(URI snapshot) {
DataObjectType doType = TypeMap.getDoType(FileExportRule.class);
ColumnField field = doType.getColumnField("snapshotId");
return new ContainmentConstraintImpl(snapshot, FileExportRule.class, field);
}
public static ContainmentConstraint getFileReplicationPolicyTopologyConstraint(URI policy) {
DataObjectType doType = TypeMap.getDoType(FileReplicationTopology.class);
ColumnField field = doType.getColumnField(FILE_PROTECTION_POLICY_ID);
return new ContainmentConstraintImpl(policy, FileReplicationTopology.class, field);
}
public static ContainmentConstraint getFilePolicyStorageResourceConstraint(URI policy) {
DataObjectType doType = TypeMap.getDoType(PolicyStorageResource.class);
ColumnField field = doType.getColumnField("filePolicyId");
return new ContainmentConstraintImpl(policy, PolicyStorageResource.class, field);
}
public static ContainmentConstraint getUnManagedFileExportRulesConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(UnManagedFileExportRule.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fs, UnManagedFileExportRule.class, field);
}
public static ContainmentConstraint getUnManagedCifsShareAclsConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(UnManagedCifsShareACL.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fs, UnManagedCifsShareACL.class, field);
}
public static ContainmentConstraint getUnManagedNfsShareAclsConstraint(URI fs) {
DataObjectType doType = TypeMap.getDoType(UnManagedNFSShareACL.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fs, UnManagedNFSShareACL.class, field);
}
public static ContainmentConstraint getFileExportRulesConstraintByFileIndex(URI fsIndex) {
DataObjectType doType = TypeMap.getDoType(FileExportRule.class);
ColumnField field = doType.getColumnField("fsExportIndex");
return new ContainmentConstraintImpl(fsIndex, FileExportRule.class, field);
}
public static ContainmentConstraint getFileCifsShareAclsConstraint(URI fsURI) {
DataObjectType doType = TypeMap.getDoType(CifsShareACL.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fsURI, CifsShareACL.class, field);
}
public static ContainmentConstraint getBucketAclsConstraint(URI bucket) {
DataObjectType doType = TypeMap.getDoType(ObjectBucketACL.class);
ColumnField field = doType.getColumnField("bucketId");
return new ContainmentConstraintImpl(bucket, ObjectBucketACL.class, field);
}
public static ContainmentConstraint getSnapshotCifsShareAclsConstraint(URI snapshotURI) {
DataObjectType doType = TypeMap.getDoType(CifsShareACL.class);
ColumnField field = doType.getColumnField("snapshotId");
return new ContainmentConstraintImpl(snapshotURI, CifsShareACL.class, field);
}
public static ContainmentConstraint getFileNfsAclsConstraint(URI fsURI) {
DataObjectType doType = TypeMap.getDoType(NFSShareACL.class);
ColumnField field = doType.getColumnField(FILE_SYSTEM_ID);
return new ContainmentConstraintImpl(fsURI, NFSShareACL.class, field);
}
public static ContainmentConstraint getSnapshotNfsAclsConstraint(URI snapshotURI) {
DataObjectType doType = TypeMap.getDoType(NFSShareACL.class);
ColumnField field = doType.getColumnField("snapshotId");
return new ContainmentConstraintImpl(snapshotURI, NFSShareACL.class, field);
}
public static ContainmentConstraint getVirtualNASByParentConstraint(URI physicalNAS) {
DataObjectType doType = TypeMap.getDoType(VirtualNAS.class);
ColumnField field = doType.getColumnField("parentNasUri");
return new ContainmentConstraintImpl(physicalNAS, VirtualNAS.class, field);
}
public static ContainmentConstraint getAssociatedSourceVolumeConstraint(URI sourceURI) {
DataObjectType doType = TypeMap.getDoType(Volume.class);
ColumnField field = doType.getColumnField("associatedSourceVolume");
return new ContainmentConstraintImpl(sourceURI, Volume.class, field);
}
public static ContainmentConstraint getVirtualNASInVirtualArrayConstraint(URI varray) {
DataObjectType doType = TypeMap.getDoType(VirtualNAS.class);
ColumnField field = doType.getColumnField("assignedVirtualArrays");
return new ContainmentConstraintImpl(varray, VirtualNAS.class, field);
}
public static ContainmentConstraint getVirtualNASContainStoragePortConstraint(URI port) {
DataObjectType doType = TypeMap.getDoType(VirtualNAS.class);
ColumnField field = doType.getColumnField("storagePorts");
return new ContainmentConstraintImpl(port, VirtualNAS.class, field);
}
public static ContainmentConstraint getStoragePortFileshareConstraint(URI storagePort) {
DataObjectType doType = TypeMap.getDoType(FileShare.class);
ColumnField field = doType.getColumnField("storagePort");
return new ContainmentConstraintImpl(storagePort, FileShare.class, field);
}
public static ContainmentConstraint getVolumesGroupsByVolumeGroupId(URI volumeGroupId) {
DataObjectType doType = TypeMap.getDoType(VolumeGroup.class);
return new ContainmentConstraintImpl(volumeGroupId, VolumeGroup.class, doType.getColumnField("parent"));
}
/**
* method to return ContainmentConstraint between {@link ComputeImageJob} and {@link ComputeImageServer}
*
* @param imageServerURI {@link URI} imagerServer URI
* @return {@link ContainmentConstraint}
*/
public static ContainmentConstraint getComputeImageJobsByComputeImageServerConstraint(URI imageServerURI) {
DataObjectType doType = TypeMap.getDoType(ComputeImageJob.class);
ColumnField field = doType.getColumnField(COMPUTE_IMAGESERVER_ID);
return new ContainmentConstraintImpl(imageServerURI, ComputeImageJob.class, field);
}
public static ContainmentConstraint getSnapshotExportGroupConstraint(URI id) {
DataObjectType doType = TypeMap.getDoType(ExportGroup.class);
ColumnField field = doType.getColumnField("snapshots");
return new ContainmentConstraintImpl(id, ExportGroup.class, field);
}
public static ContainmentConstraint getTenantOrgSchedulePolicyConstraint(URI tenantOrg) {
DataObjectType doType = TypeMap.getDoType(SchedulePolicy.class);
ColumnField field = doType.getColumnField("tenantOrg");
return new ContainmentConstraintImpl(tenantOrg, SchedulePolicy.class, field);
}
public static ContainmentConstraint getStorageDeviceObjectNamespaceConstraint(URI device) {
DataObjectType doType = TypeMap.getDoType(ObjectNamespace.class);
ColumnField field = doType.getColumnField(STORAGE_DEVICE);
return new ContainmentConstraintImpl(device, ObjectNamespace.class, field);
}
public static ContainmentConstraint getMigrationVolumeConstraint(URI volumeURI) {
DataObjectType doType = TypeMap.getDoType(Migration.class);
ColumnField field = doType.getColumnField("volume");
return new ContainmentConstraintImpl(volumeURI, Migration.class, field);
}
public static ContainmentConstraint getScheduledEventOrderConstraint(URI scheduledEventId) {
DataObjectType doType = TypeMap.getDoType(Order.class);
ColumnField field = doType.getColumnField("scheduledEventId");
return new ContainmentConstraintImpl(scheduledEventId, Order.class, field);
}
}
}