package org.ovirt.engine.core.dao; import java.util.List; import org.ovirt.engine.core.common.businessentities.VDSStatus; import org.ovirt.engine.core.common.businessentities.VdsStatic; import org.ovirt.engine.core.compat.Guid; /** * {@code VdsStaticDao} defines a type that performs CRUD operations on instances of {@link VdsStatic}. */ public interface VdsStaticDao extends GenericDao<VdsStatic, Guid> { /** * Retrieves the instance for the given host name. * * @param hostname * the host name * @return the instance */ VdsStatic getByHostName(String hostname); /** * Retrieves the instance for the given vds name. * @param vdsName * the vds name * @return the instance */ VdsStatic getByVdsName(String vdsName); /** * Finds all instances with the given ip address. * @param address * the ip address * @return the list of instances */ List<VdsStatic> getAllWithIpAddress(String address); /** * Retrieves all instances associated with the specified VDS group. * * @param cluster * the group id * @return the list of instances */ List<VdsStatic> getAllForCluster(Guid cluster); /** * Retrieves for the parameter VM, return all pinned host names. * * @param vm * the target vm's guid * @return the list of host names */ List<String> getAllHostNamesPinnedToVm(Guid vm); /** * Separate update method for {@code last_stored_kernel_cmdline} column to prevent * race overwrites. */ void updateLastStoredKernelCmdline(Guid vdsStaticId, String lastStoredKernelCmdline); /** * Checks if exists a host with the given status in the cluster that do not have the network attached to its NIC's. * * @param clusterId cluster id * @param networkName network name * @param hostStatus host status * * @return <code>true</code> if such host exists otherwise <code>false</code>. */ boolean checkIfExistsHostThatMissesNetworkInCluster(Guid clusterId, String networkName, VDSStatus hostStatus); }