package org.ovirt.engine.core.dao; import java.util.List; import org.ovirt.engine.core.common.businessentities.ExternalStatus; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VdsDynamic; import org.ovirt.engine.core.compat.Guid; /** * {@code VdsDynamicDao} defines a type that performs CRUD operations on instances of {@link VdsDynamic}. */ public interface VdsDynamicDao extends GenericDao<VdsDynamic, Guid>, StatusAwareDao<Guid, VDSStatus>, ExternalStatusAwareDao<Guid, ExternalStatus>, MassOperationsDao<VdsDynamic, Guid>, CheckedUpdate<VdsDynamic> { /** * Update entity net_config_dirty field * @param id - entity id * @param netConfigDirty - a new value of field */ void updateNetConfigDirty(Guid id, Boolean netConfigDirty); /** * This method will update the controlled_by_pm_policy flag in DB. * @param id - id or record to be updated * @param controlledByPmPolicy - a new value for the flag */ void updateVdsDynamicPowerManagementPolicyFlag(Guid id, boolean controlledByPmPolicy); void updateCpuFlags(Guid id, String cpuFlags); /** * Retrieves all host ids of hosts that are in given status * @return list of host ids */ List<Guid> getIdsOfHostsWithStatus(VDSStatus status); /** * Updates the updateAvaiable flag of the given host * * @param id * the ID of the updates host * @param updateAvailable * the new value to be updated */ void updateUpdateAvailable(Guid id, boolean updateAvailable); /** * Updates the status and the reasons (maintenance and non-operational) for the given host * * @param host * the host to be updated */ void updateStatusAndReasons(VdsDynamic host); /** * Checks if exists a host with the given status in the given cluster. * * @param clusterId * cluster id * @param hostStatus * hosts status * @return <code>true</code> if such a host exists, otherwise <code>false</code>. */ boolean checkIfExistsHostWithStatusInCluster(Guid clusterId, VDSStatus hostStatus); }