package org.ovirt.engine.core.dao.scheduling;
import java.util.List;
import org.ovirt.engine.core.common.scheduling.AffinityGroup;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.GenericDao;
public interface AffinityGroupDao extends GenericDao<AffinityGroup, Guid> {
/**
* get all Affinity Groups by cluster id
*/
List<AffinityGroup> getAllAffinityGroupsByClusterId(Guid clusterId);
/**
* get all Affinity Groups by vm id
*/
List<AffinityGroup> getAllAffinityGroupsByVmId(Guid vmId);
/**
* get Affinity Group by name
*/
AffinityGroup getByName(String str);
/**
* remove VM from all affinity groups (when changing Vm's cluster)
*/
void removeVmFromAffinityGroups(Guid vmId);
/**
* remove VDS from all affinity groups (when changing Vm's cluster)
*/
void removeVdsFromAffinityGroups(Guid vdsId);
/**
* get all positive enforcing affinity groups containing VMs running on given host
*/
List<AffinityGroup> getPositiveEnforcingAffinityGroupsByRunningVmsOnVdsId(Guid vdsId);
}