package org.ovirt.engine.core.dao.gluster;
import java.util.Collection;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.gluster.AccessProtocol;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeType;
import org.ovirt.engine.core.common.businessentities.gluster.TransportType;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.Dao;
import org.ovirt.engine.core.dao.MassOperationsDao;
import org.ovirt.engine.core.dao.SearchDao;
/**
* Interface for DB operations on Gluster Volumes.
*/
public interface GlusterVolumeDao extends Dao, SearchDao<GlusterVolumeEntity>, MassOperationsDao<GlusterVolumeEntity, Guid> {
public void save(GlusterVolumeEntity volume);
public GlusterVolumeEntity getById(Guid id);
public GlusterVolumeEntity getByName(Guid clusterId, String volName);
public List<GlusterVolumeEntity> getByClusterId(Guid clusterId);
public List<GlusterVolumeEntity> getVolumesByOption(Guid clusterId,
GlusterStatus status,
String optionKey,
String optionValue);
public List<GlusterVolumeEntity> getVolumesByStatusTypesAndOption(Guid clusterId,
GlusterStatus status,
List<GlusterVolumeType> volumeTypes,
String optionKey,
String optionValue);
public List<GlusterVolumeEntity> getVolumesByStatusAndTypes(Guid clusterId,
GlusterStatus status,
List<GlusterVolumeType> volumeTypes);
public List<GlusterVolumeEntity> getVolumesSupportedAsStorageDomain();
@Override
public List<GlusterVolumeEntity> getAllWithQuery(String query);
public void remove(Guid id);
public void removeByClusterId(Guid clusterId);
public void removeByName(Guid clusterId, String volName);
public void updateVolumeStatus(Guid volumeId, GlusterStatus status);
public void updateVolumeStatusByName(Guid clusterId, String volumeName, GlusterStatus status);
public void addAccessProtocol(Guid volumeId, AccessProtocol protocol);
public void removeAccessProtocol(Guid volumeId, AccessProtocol protocol);
public void addTransportType(Guid volumeId, TransportType transportType);
public void addTransportTypes(Guid volumeId, Collection<TransportType> transportTypes);
public void removeTransportType(Guid volumeId, TransportType transportType);
public void removeTransportTypes(Guid volumeId, Collection<TransportType> transportTypes);
public void updateReplicaCount(Guid volumeId, int replicaCount);
public void updateGlusterVolume(GlusterVolumeEntity volume);
public void addVolumeCapacityInfo(GlusterVolumeSizeInfo volumeCapacityInfo);
public void updateVolumeCapacityInfo(GlusterVolumeSizeInfo volumeCapacityInfo);
public void updateVolumeTask(Guid volumeId, Guid taskId);
public GlusterVolumeEntity getVolumeByGlusterTask(Guid taskId);
}