package org.ovirt.engine.core.dao.gluster;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookStage;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookStatus;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterServerHook;
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 Hooks.
*/
public interface GlusterHooksDao extends Dao, SearchDao<GlusterHookEntity>, MassOperationsDao<GlusterHookEntity, Guid> {
public void save(GlusterHookEntity glusterHook);
/**
* Retrieves the GlusterHookEntity. By default the content and list of GlusterServerHooks are not loaded.
* Use {@link GlusterHooksDao#getById(Guid, boolean)} for this.
*/
public GlusterHookEntity getById(Guid id);
/**
* Retrieves the GlusterHook.
* If eagerLoad is set to true, the content and related GlusterServerHook entities are
* retrieved too.
* @param eagerLoad - indicates if related entities are populated too.
*/
public GlusterHookEntity getById(Guid id, boolean eagerLoad);
public GlusterHookEntity getGlusterHook(Guid clusterId, String glusterCommand, GlusterHookStage stage, String hookName);
public List<GlusterServerHook> getGlusterServerHooks(Guid hookId);
public GlusterServerHook getGlusterServerHook(Guid hookId, Guid serverId);
public List<GlusterHookEntity> getByClusterId(Guid clusterId);
public String getGlusterHookContent(Guid glusterHookId);
@Override
public List<GlusterHookEntity> getAllWithQuery(String query);
public void remove(Guid id);
public void updateGlusterHook(GlusterHookEntity hook);
public void updateGlusterHookStatus(Guid hookId, GlusterHookStatus status);
public void updateGlusterServerHookStatus(Guid hookId, Guid serverId, GlusterHookStatus status);
public void updateGlusterHookContent(Guid id, String checksum, String content);
public void updateGlusterHookConflictStatus(Guid hookId, Integer conflictStatus);
public void saveOrUpdateGlusterServerHook(GlusterServerHook serverHook);
public void saveGlusterServerHook(GlusterServerHook serverHook);
public void updateGlusterServerHookChecksum(Guid hookId, Guid serverId, String checksum);
public void updateGlusterServerHook(GlusterServerHook serverHook);
public void removeGlusterServerHooks(Guid hookId);
public void removeGlusterServerHook(Guid hookId, Guid serverId);
public void removeAllInCluster(Guid clusterId);
}