package org.ovirt.engine.core.dao.network; import java.util.List; import java.util.Set; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.GenericDao; public interface NetworkDao extends GenericDao<Network, Guid> { /** * Retrieves all networks. * * @param userID * the ID of the user requesting the information * @param isFiltered * Whether the results should be filtered according to the user's permissions * @return the list of networks */ List<Network> getAll(Guid userID, boolean isFiltered); /** * Retrieves the network with the specified name. * * @param name * the network name * @return the network */ Network getByName(String name); /** * Retrieves the network with the specified name and storage pool id. * * @param name * the network name * @param storagePoolId * the network's storage pool id * @return the network */ Network getByNameAndDataCenter(String name, Guid storagePoolId); /** * Retrieves the network with the specified name which is attached to a specific Cluster. * * @param name * the network name * @param clusterId * the cluster the network is attached to * @return the network */ Network getByNameAndCluster(String name, Guid clusterId); /** * Retrieves all networks for the given data center. * * @param id * the data center * @return the list of networks */ List<Network> getAllForDataCenter(Guid id); /** * Retrieves all networks for the given data center. * * @param id * the data center * @param userID * the ID of the user requesting the information * @param isFiltered * Whether the results should be filtered according to the user's permissions * @return the list of networks */ List<Network> getAllForDataCenter(Guid id, Guid userID, boolean isFiltered); /** * Retrieves all networks for the given cluster. * * @param id * the cluster * @return the list of networks */ List<Network> getAllForCluster(Guid id); /** * Retrieves all networks for the given cluster with optional permission filtering. * * @param id * the cluster * @param userID * the ID of the user requesting the information * @param isFiltered * Whether the results should be filtered according to the user's permissions * @return the list of networks */ List<Network> getAllForCluster(Guid id, Guid userID, boolean isFiltered); /** * Retrieves all networks using a given QoS entity. * * @param qosId * the ID of the QoS entity * @return the list of networks */ List<Network> getAllForQos(Guid qosId); /** * Retrieves all networks for the given provider. * * @param id * the provider's ID * @return the list of networks */ List<Network> getAllForProvider(Guid id); /** * Retrieves all network labels defined on networks in a specific data-center * * @param id * the data-center id * @return all labels defined for the data-center's networks */ Set<String> getAllNetworkLabelsForDataCenter(Guid id); /** * Retrieve a specific network. * * @param id * the network id * @param userID * the ID of the user requesting the information * @param isFiltered * Whether the results should be filtered according to the user's permissions * @return the network */ Network get(Guid networkId, Guid userID, boolean isFiltered); /** * Retrieves the networks with the specified label which are attached to a specific Cluster. * * @param label * the network label * @param clusterId * the cluster the networks are attached to * @return the networks */ List<Network> getAllByLabelForCluster(String label, Guid clusterId); /** * Retrieves the management network for the given cluster. * * @param clusterId * the cluster the network is attached to * * @return the management {@link Network} */ Network getManagementNetwork(Guid clusterId); /** * Retrieves the management networks for the given DC. * * @param dataCenterId * the data center the network is belongs to * * @return the management {@link Network}s */ List<Network> getManagementNetworks(Guid dataCenterId); }