package org.ovirt.engine.core.dao; import java.util.List; import java.util.Set; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.storage.StorageType; import org.ovirt.engine.core.compat.Guid; /** * {@code StorageServerConnectionDao} defines a type that performs CRUD operations on instances of * {@link StorageServerConnections}. */ public interface StorageServerConnectionDao extends GenericDao<StorageServerConnections, String> { /** * Get all storage connections from db */ List<StorageServerConnections> getAll(); /** * Retrieves the connection with the specified id. * * @param id * the connection id * @return the connection */ StorageServerConnections get(String id); /** * Retrieves connections which id is one of the specified ids. * * @param ids * the list of connection ids */ List<StorageServerConnections> getByIds(List<String> ids); /** * Retrieves the connection for the given iqn. * * @param iqn * the iqn * @return the connection */ StorageServerConnections getForIqn(String iqn); /** * Retrieves all connections of Active/Unknown/Inactive domains in the specified storage pool. * * @param pool * the storage pool * @return the list of connections */ List<StorageServerConnections> getAllConnectableStorageSeverConnection(Guid pool); /** * Retrieves all connections of Active/Unknown/Inactive domains of the specified storage type * in the specified storage pool. If storage type is not specified then all connections of the same * domains are returned. * * @param pool * the storage pool * @param storageType * the storage type * * @return the list of connections */ List<StorageServerConnections> getConnectableStorageConnectionsByStorageType(Guid pool, StorageType storageType); /** * Retrieves all connections of domains in the given statuses of the specified storage type * in the specified storage pool. If storage type is not specified then all connections of the same * domains are returned. * @param pool * the storage pool * @param storageType * the storage type * @param statuses * the applicable statuses * @return the list of connections */ List<StorageServerConnections> getStorageConnectionsByStorageTypeAndStatus(Guid pool, StorageType storageType, Set<StorageDomainStatus> statuses); /** * Retrieves all connections for the specified volume group. * * @param group * the volume group * @return the list of connections */ List<StorageServerConnections> getAllForVolumeGroup(String group); /** * Retrieves all connections for the specified storage. * * @param storage * the storage * @return the list of connections */ List<StorageServerConnections> getAllForStorage(String storage); /** * Retrieves all connections for the specified Lun. * * @param lunId * the lun * @return the list of connections */ List<StorageServerConnections> getAllForLun(String lunId); /** * Retrieves all connections for the specified connection. * * @param connection * the connection * @return the list of connections */ List<StorageServerConnections> getAllForConnection( StorageServerConnections connection); /** * Retrieves all connections used by the specified storage domain * @return the list of connections */ List<StorageServerConnections> getAllForDomain(Guid domainId); /** * Saves the specified connection. * * @param connection * the connection */ void save(StorageServerConnections connection); /** * Updates the specified connection. * * @param connection * the connection */ void update(StorageServerConnections connection); /** * Removes the connection with the specified id. * * @param id * the connection id */ void remove(String id); }