package org.ovirt.engine.core.dao.gluster; import java.util.Collection; import java.util.List; import org.ovirt.engine.core.common.businessentities.gluster.BrickProperties; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.Dao; import org.ovirt.engine.core.dao.MassOperationsDao; /** * Interface for DB operations on Gluster Bricks. */ public interface GlusterBrickDao extends Dao, MassOperationsDao<GlusterBrickEntity, Guid> { public void save(GlusterBrickEntity brick); public GlusterBrickEntity getById(Guid id); public List<GlusterBrickEntity> getBricksOfVolume(Guid volumeId); public void removeBrick(Guid brickId); public void replaceBrick(GlusterBrickEntity oldBrick, GlusterBrickEntity newBrick); public void updateBrickStatus(Guid brickId, GlusterStatus status); public void updateBrickStatuses(List<GlusterBrickEntity> bricks); public void updateBrickOrder(Guid brickId, int brickOrder); public List<GlusterBrickEntity> getGlusterVolumeBricksByServerId(Guid serverId); public GlusterBrickEntity getBrickByServerIdAndDirectory(Guid serverId, String brickDirectory); public List<GlusterBrickEntity> getGlusterVolumeBricksByTaskId(Guid taskId); public void updateBrickTask(Guid brickId, Guid taskId); public void updateBrickTasksInBatch(Collection<GlusterBrickEntity> bricks); /** * Updates the given task id on brick identified by server id and brick dir parameters */ public void updateBrickTaskByHostIdBrickDir(Guid serverId, String brickDir, Guid taskId); /** * Updates the collection of brick entities with task id populated in entity, in a batch. * Each brick is identified by server id and brick dir populated in the brick entity. */ public void updateAllBrickTasksByHostIdBrickDirInBatch(Collection<GlusterBrickEntity> bricks); public void addBrickProperties(BrickProperties brickProperties); public void addBrickProperties(List<GlusterBrickEntity> bricks); public void updateBrickProperties(BrickProperties brickProperties); public void updateBrickProperties(List<GlusterBrickEntity> bricks); public void updateBrickNetworkId(Guid brickId, Guid networkId); public List<GlusterBrickEntity> getAllByClusterAndNetworkId(Guid clusterId, Guid networkId); public void updateUnSyncedEntries(List<GlusterBrickEntity> bricks); }