Moti Asayag has uploaded a new change for review. Change subject: engine: Utilize VmNicRowMapper base for VmNetworkInterfaceDao ......................................................................
engine: Utilize VmNicRowMapper base for VmNetworkInterfaceDao The patch performs the following: 1. Standardize VmNetworkInterfaceDao by proper inheritance 2. Utilize VmNicRowMapperBase for VmNetworkInterfaceDao mapper 3. Standardize stored-procedure names and organize vm network interface views. 4. Some cleanup. 5. Remove methods which can be invoked from VmNicDao 6. Fix stored procedure to consider vnic_profiles as the mediator between vm nic and network. Change-Id: Iea17ab1f7b686c5674b33b353794456450719f8f Signed-off-by: Moti Asayag <masa...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDao.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoDbFacadeImpl.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoTest.java M packaging/dbscripts/network_sp.sql 7 files changed, 130 insertions(+), 215 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/17179/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java index 43f4534..34518f6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/MacPoolManager.java @@ -10,7 +10,7 @@ import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.AuditLogType; -import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; +import org.ovirt.engine.core.common.businessentities.network.VmNic; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.errors.VdcBLLException; @@ -72,9 +72,9 @@ } } - List<VmNetworkInterface> interfaces = DbFacade.getInstance().getVmNetworkInterfaceDao().getAll(); + List<VmNic> interfaces = DbFacade.getInstance().getVmNicDao().getAll(); - for (VmNetworkInterface iface: interfaces) { + for (VmNic iface : interfaces) { forceAddMac(iface.getMacAddress()); } initialized = true; diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java index 8eeffaa..aca6e33 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/VmInterfaceManager.java @@ -10,6 +10,7 @@ import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; +import org.ovirt.engine.core.common.businessentities.network.VmNic; import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.compat.Guid; @@ -35,7 +36,7 @@ /** * Add a {@link VmNetworkInterface} to the VM. Allocates a MAC from the {@link MacPoolManager} if necessary, - * otherwise, if {@link ConfigValues#HotPlugEnabled} is true, forces adding the MAC address to the + * otherwise, if {@code ConfigValues.HotPlugEnabled} is true, forces adding the MAC address to the * {@link MacPoolManager}. If HotPlug is not enabled tries to add the {@link VmNetworkInterface}'s MAC address to * the {@link MacPoolManager}, and throws a {@link VdcBllException} if it fails. * @@ -154,9 +155,8 @@ * @return <code>true</code> if the MAC is used by another plugged network interface, <code>false</code> otherwise. */ public boolean existsPluggedInterfaceWithSameMac(VmNetworkInterface interfaceToPlug) { - List<VmNetworkInterface> vmNetworkIntrefaces = - getVmNetworkInterfaceDao().getPluggedForMac(interfaceToPlug.getMacAddress()); - for (VmNetworkInterface vmNetworkInterface : vmNetworkIntrefaces) { + List<VmNic> vmNetworkIntrefaces = getVmNicDao().getPluggedForMac(interfaceToPlug.getMacAddress()); + for (VmNic vmNetworkInterface : vmNetworkIntrefaces) { if (!interfaceToPlug.getId().equals(vmNetworkInterface.getId())) { return true; } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java index 852a6de..20724e0 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/RemoveStoragePoolCommand.java @@ -59,7 +59,7 @@ @Override protected void executeCommand() { - List<String> macsToRemove = getVmNetworkInterfaceDao().getAllMacsByDataCenter(getStoragePool().getId()); + List<String> macsToRemove = getVmNicDao().getAllMacsByDataCenter(getStoragePool().getId()); removeNetworks(); /** * Detach master storage domain last. diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDao.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDao.java index c9a7a02..2322816 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDao.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDao.java @@ -69,22 +69,4 @@ * @return the list of VmNetworkInterfaces */ List<VmNetworkInterface> getAllForTemplatesByNetwork(Guid networkId); - - /** - * Retrieves the MAC addresses of the Vms in the given Data Center. - * - * @param dataCenterId - * the Data Center - * @return the list of MAC addresses - */ - List<String> getAllMacsByDataCenter(Guid dataCenterId); - - /*** - * Retrieves the plugged VmNetworkInterfaces that have the given MAC address - * - * @param macAddress - * the MAC address - * @return the list of plugged VmNetworkInterfaces - */ - List<VmNetworkInterface> getPluggedForMac(String macAddress); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoDbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoDbFacadeImpl.java index c4e6da4..de87896 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoDbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoDbFacadeImpl.java @@ -2,6 +2,7 @@ import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; @@ -9,59 +10,16 @@ import org.ovirt.engine.core.common.businessentities.network.InterfaceStatus; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.core.dao.BaseDAODbFacade; +import org.ovirt.engine.core.dao.DefaultReadDaoDbFacade; +import org.ovirt.engine.core.dao.network.VmNicDaoDbFacadeImpl.VmNicRowMapperBase; import org.ovirt.engine.core.utils.SerializationFactory; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; -public class VmNetworkInterfaceDaoDbFacadeImpl extends BaseDAODbFacade implements VmNetworkInterfaceDao { +public class VmNetworkInterfaceDaoDbFacadeImpl extends DefaultReadDaoDbFacade<VmNetworkInterface, Guid> implements VmNetworkInterfaceDao { - private static final int MAC_COLUMN_POSITION = 1; - - @SuppressWarnings("unchecked") - protected final RowMapper<VmNetworkInterface> mapper = - new RowMapper<VmNetworkInterface>() { - @Override - public VmNetworkInterface mapRow(ResultSet rs, int rowNum) - throws SQLException { - VmNetworkInterface entity = new VmNetworkInterface(); - entity.getStatistics().setId(getGuidDefaultEmpty(rs, "id")); - entity.getStatistics().setReceiveRate(rs.getDouble("rx_rate")); - entity.getStatistics().setTransmitRate(rs.getDouble("tx_rate")); - entity.getStatistics().setReceiveDropRate(rs.getDouble("rx_drop")); - entity.getStatistics().setTransmitDropRate(rs.getDouble("tx_drop")); - entity.getStatistics().setStatus(InterfaceStatus.forValue(rs.getInt("iface_status"))); - entity.setType((Integer) rs.getObject("type")); - entity.setMacAddress(rs.getString("mac_addr")); - entity.setNetworkName(rs.getString("network_name")); - entity.setName(rs.getString("name")); - entity.setVmId(getGuid(rs, "vm_guid")); - entity.setVnicProfileId(getGuid(rs, "vnic_profile_id")); - entity.setVmTemplateId(getGuid(rs, "vmt_guid")); - entity.setVmName(rs.getString("vm_name")); - entity.setId(getGuidDefaultEmpty(rs, "id")); - entity.setSpeed((Integer) rs.getObject("speed")); - entity.setPlugged(rs.getBoolean("is_plugged")); - entity.setCustomProperties(SerializationFactory.getDeserializer() - .deserializeOrCreateNew(rs.getString("custom_properties"), LinkedHashMap.class)); - entity.setPortMirroring(rs.getBoolean("port_mirroring")); - entity.setLinked(rs.getBoolean("linked")); - return entity; - } - }; - - protected final RowMapper<String> macMapper = new RowMapper<String>() { - - @Override - public String mapRow(ResultSet rs, int rowNum) throws SQLException { - return rs.getString(MAC_COLUMN_POSITION); - } - }; - - @Override - public VmNetworkInterface get(Guid id) { - MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource().addValue("id", id); - return getCallsHandler().executeRead("Getvm_interfaceById", mapper, parameterSource); + public VmNetworkInterfaceDaoDbFacadeImpl() { + super("VmNetworkInterfaceView"); } @Override @@ -70,13 +28,15 @@ } @Override - public List<VmNetworkInterface> getAllForVm(Guid id, Guid userID, boolean isFiltered) { + public List<VmNetworkInterface> getAllForVm(Guid id, Guid userId, boolean filtered) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() - .addValue("vm_id", id).addValue("user_id", userID).addValue("is_filtered", isFiltered); + .addValue("vm_id", id).addValue("user_id", userId).addValue("is_filtered", filtered); List<VmNetworkInterface> results = - getCallsHandler().executeReadList("Getvm_interfaceByvm_id", mapper, parameterSource); - java.util.Collections.sort(results, new InterfaceComparerByMAC()); + getCallsHandler().executeReadList("GetVmNetworkInterfaceViewByVmId", + VmNetworkInterfaceRowMapper.INSTANCE, + parameterSource); + Collections.sort(results, new InterfaceComparerByMAC()); return results; } @@ -86,39 +46,65 @@ } @Override - public List<VmNetworkInterface> getAllForTemplate(Guid id, Guid userID, boolean isFiltered) { + public List<VmNetworkInterface> getAllForTemplate(Guid id, Guid userId, boolean filtered) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() - .addValue("template_id", id).addValue("user_id", userID).addValue("is_filtered", isFiltered); + .addValue("template_id", id).addValue("user_id", userId).addValue("is_filtered", filtered); - return getCallsHandler().executeReadList("Getvm_interfaceBytemplate_id", mapper, parameterSource); - } - - @Override - public List<VmNetworkInterface> getAll() { - return getCallsHandler().executeReadList("GetAllFromvm_interface", mapper, getCustomMapSqlParameterSource()); + return getCallsHandler().executeReadList("GetVmNetworkInterfaceViewByTemplateId", + VmNetworkInterfaceRowMapper.INSTANCE, + parameterSource); } @Override public List<VmNetworkInterface> getAllForNetwork(Guid networkId) { return getCallsHandler().executeReadList("GetVmInterfaceViewsByNetworkId", - mapper, getCustomMapSqlParameterSource().addValue("network_id", networkId)); + VmNetworkInterfaceRowMapper.INSTANCE, + getCustomMapSqlParameterSource().addValue("network_id", networkId)); } @Override public List<VmNetworkInterface> getAllForTemplatesByNetwork(Guid networkId) { return getCallsHandler().executeReadList("GetVmTemplateInterfaceViewsByNetworkId", - mapper, getCustomMapSqlParameterSource().addValue("network_id", networkId)); + VmNetworkInterfaceRowMapper.INSTANCE, + getCustomMapSqlParameterSource().addValue("network_id", networkId)); } @Override - public List<String> getAllMacsByDataCenter(Guid dataCenterId) { - return getCallsHandler().executeReadList("GetMacsByDataCenterId", - macMapper, getCustomMapSqlParameterSource().addValue("data_center_id", dataCenterId)); + protected MapSqlParameterSource createIdParameterMapper(Guid id) { + return getCustomMapSqlParameterSource().addValue("id", id); } @Override - public List<VmNetworkInterface> getPluggedForMac(String macAddress) { - return getCallsHandler().executeReadList("GetPluggedVmInterfacesByMac", - mapper, getCustomMapSqlParameterSource().addValue("mac_address", macAddress)); + protected RowMapper<VmNetworkInterface> createEntityRowMapper() { + return VmNetworkInterfaceRowMapper.INSTANCE; + } + + private static class VmNetworkInterfaceRowMapper extends VmNicRowMapperBase<VmNetworkInterface> { + + public static VmNetworkInterfaceRowMapper INSTANCE = new VmNetworkInterfaceRowMapper(); + + @SuppressWarnings("unchecked") + @Override + public VmNetworkInterface mapRow(ResultSet rs, int rowNum) throws SQLException { + VmNetworkInterface entity = super.mapRow(rs, rowNum); + entity.getStatistics().setId(getGuidDefaultEmpty(rs, "id")); + entity.getStatistics().setReceiveRate(rs.getDouble("rx_rate")); + entity.getStatistics().setTransmitRate(rs.getDouble("tx_rate")); + entity.getStatistics().setReceiveDropRate(rs.getDouble("rx_drop")); + entity.getStatistics().setTransmitDropRate(rs.getDouble("tx_drop")); + entity.getStatistics().setStatus(InterfaceStatus.forValue(rs.getInt("iface_status"))); + entity.setNetworkName(rs.getString("network_name")); + entity.setPlugged(rs.getBoolean("is_plugged")); + entity.setCustomProperties(SerializationFactory.getDeserializer() + .deserializeOrCreateNew(rs.getString("custom_properties"), LinkedHashMap.class)); + entity.setPortMirroring(rs.getBoolean("port_mirroring")); + return entity; + + } + @Override + protected VmNetworkInterface createVmNicEntity() { + return new VmNetworkInterface(); + } + } } diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoTest.java index 1c8303f..0ad1b1b 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/VmNetworkInterfaceDaoTest.java @@ -18,7 +18,6 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseDAOTestCase; import org.ovirt.engine.core.dao.FixturesTool; -import org.ovirt.engine.core.dao.VmDeviceDAO; public class VmNetworkInterfaceDaoTest extends BaseDAOTestCase { private static final Guid TEMPLATE_ID = new Guid("1b85420c-b84c-4f29-997e-0eb674b40b79"); @@ -28,8 +27,6 @@ protected static final Guid UNPRIVILEGED_USER_ID = new Guid("9bf7c640-b620-456f-a550-0348f366544a"); private VmNetworkInterfaceDao dao; - private VmDeviceDAO vmDevicesDao; - private VmNetworkStatisticsDao StatsDao; private VmNetworkInterface existingVmInterface; private VmNetworkInterface existingTemplateInterface; @@ -41,8 +38,6 @@ super.setUp(); dao = dbFacade.getVmNetworkInterfaceDao(); - vmDevicesDao = dbFacade.getVmDeviceDao(); - StatsDao = dbFacade.getVmNetworkStatisticsDao(); existingVmInterface = dao.get(FixturesTool.VM_NETWORK_INTERFACE); existingTemplateInterface = dao.get(FixturesTool.TEMPLATE_NETWORK_INTERFACE); @@ -223,20 +218,6 @@ public void testGetAllForNetwork() throws Exception { List<VmNetworkInterface> result = dao.getAllForNetwork(FixturesTool.NETWORK_ENGINE); assertEquals(existingVmInterface, result.get(0)); - } - - @Test - public void testGetAllMacsByStoragePool() throws Exception { - List<String> result = dao.getAllMacsByDataCenter(FixturesTool.STORAGE_POOL_NFS_2); - assertEquals(FixturesTool.MAC_ADDRESS, result.get(0)); - } - - @Test - public void testGetPluggedForMac() throws Exception { - List<VmNetworkInterface> result = dao.getPluggedForMac(FixturesTool.MAC_ADDRESS); - for (VmNetworkInterface vmNetworkInterface : result) { - assertEquals(FixturesTool.MAC_ADDRESS, vmNetworkInterface.getMacAddress()); - } } private void assertCorrectResultForTemplate(List<VmNetworkInterface> result) { diff --git a/packaging/dbscripts/network_sp.sql b/packaging/dbscripts/network_sp.sql index b0fe204..c802d88 100644 --- a/packaging/dbscripts/network_sp.sql +++ b/packaging/dbscripts/network_sp.sql @@ -344,29 +344,6 @@ LANGUAGE plpgsql; - - - - - -Create or replace FUNCTION Getvm_interfaceByvm_id(v_vm_id UUID, v_user_id UUID, v_is_filtered BOOLEAN) -RETURNS SETOF vm_interface_view - AS $procedure$ -BEGIN -RETURN QUERY SELECT * - FROM vm_interface_view - WHERE vm_guid = v_vm_id - AND (NOT v_is_filtered OR EXISTS (SELECT 1 - FROM user_vm_permissions_view - WHERE user_id = v_user_id AND entity_id = v_vm_id)); - -END; $procedure$ -LANGUAGE plpgsql; - - - - - Create or replace FUNCTION Getinterface_viewByvds_id(v_vds_id UUID, v_user_id UUID, v_is_filtered boolean) RETURNS SETOF vds_interface_view AS $procedure$ @@ -569,11 +546,25 @@ END; $procedure$ LANGUAGE plpgsql; + +Create or replace FUNCTION GetMacsByDataCenterId(v_data_center_id UUID) RETURNS SETOF varchar +AS $procedure$ +BEGIN +RETURN QUERY SELECT mac_addr +FROM vm_interface +WHERE EXISTS ( +SELECT 1 FROM vm_static +JOIN vds_groups ON vm_static.vds_group_id = vds_groups.vds_group_id +WHERE vds_groups.storage_pool_id = v_data_center_id +AND vm_static.vm_guid = vm_interface.vm_guid); +END; $procedure$ +LANGUAGE plpgsql; + ---------------------------------------------------------------- -- VM Interface View ---------------------------------------------------------------- -Create or replace FUNCTION GetAllFromvm_interface() RETURNS SETOF vm_interface_view +Create or replace FUNCTION GetAllFromVmNetworkInterfaceViews() RETURNS SETOF vm_interface_view AS $procedure$ BEGIN RETURN QUERY SELECT * @@ -581,7 +572,6 @@ END; $procedure$ LANGUAGE plpgsql; - Create or replace FUNCTION GetAllFromvm_interface() RETURNS SETOF vm_interface_view @@ -594,10 +584,8 @@ LANGUAGE plpgsql; - - - -Create or replace FUNCTION Getvm_interfaceByid(v_id UUID) RETURNS SETOF vm_interface_view +Create or replace FUNCTION GetVmNetworkInterfaceViewByVmNetworkInterfaceViewId(v_id UUID) +RETURNS SETOF vm_interface_view AS $procedure$ BEGIN RETURN QUERY SELECT * @@ -606,7 +594,6 @@ END; $procedure$ LANGUAGE plpgsql; - Create or replace FUNCTION GetPluggedVmInterfacesByMac(v_mac_address VARCHAR(20)) @@ -620,6 +607,57 @@ END; $procedure$ LANGUAGE plpgsql; + +Create or replace FUNCTION GetVmNetworkInterfaceViewByVmId(v_vm_id UUID, v_user_id UUID, v_is_filtered BOOLEAN) +RETURNS SETOF vm_interface_view +AS $procedure$ +BEGIN + RETURN QUERY SELECT * + FROM vm_interface_view + WHERE vm_guid = v_vm_id + AND (NOT v_is_filtered OR EXISTS (SELECT 1 + FROM user_vm_permissions_view + WHERE user_id = v_user_id AND entity_id = v_vm_id)); +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION GetVmNetworkInterfaceViewByTemplateId(v_template_id UUID, v_user_id UUID, v_is_filtered boolean) +RETURNS SETOF vm_interface_view +AS $procedure$ +BEGIN + RETURN QUERY SELECT * + FROM vm_interface_view + WHERE vmt_guid = v_template_id + AND (NOT v_is_filtered OR EXISTS (SELECT 1 + FROM user_vm_template_permissions_view + WHERE user_id = v_user_id AND entity_id = v_template_id)); +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION GetVmInterfaceViewsByNetworkId(v_network_id UUID) RETURNS SETOF vm_interface_view +AS $procedure$ +BEGIN + RETURN QUERY SELECT vm_interface_view.* + FROM vm_interface_view + INNER JOIN vnic_profiles ON vnic_profiles.id = vm_interface_view.vnic_profile_id + WHERE vnic_profiles.network_id = v_network_id + AND vm_interface_view.vm_entity_type = 'VM'; +END; $procedure$ +LANGUAGE plpgsql; + + +Create or replace FUNCTION GetVmTemplateInterfaceViewsByNetworkId(v_network_id UUID) RETURNS SETOF vm_interface_view +AS $procedure$ +BEGIN + RETURN QUERY SELECT vm_interface_view.* + FROM vm_interface_view + INNER JOIN vnic_profiles ON vnic_profiles.id = vm_interface_view.vnic_profile_id + WHERE vnic_profiles.network_id = v_network_id + AND vm_interface_view.vm_entity_type = 'TEMPLATE'; +END; $procedure$ +LANGUAGE plpgsql; ---------------------------------------------------------------- -- [vm_interface_statistics] Table @@ -937,11 +975,6 @@ LANGUAGE plpgsql; - - - - - Create or replace FUNCTION GetvmStaticByGroupIdAndNetwork(v_groupId UUID, v_networkName VARCHAR(50)) RETURNS SETOF vm_static AS $procedure$ @@ -956,73 +989,6 @@ END; $procedure$ LANGUAGE plpgsql; - - - - - -Create or replace FUNCTION Getvm_interfaceBytemplate_id(v_template_id UUID, v_user_id UUID, v_is_filtered boolean) -RETURNS SETOF vm_interface_view - AS $procedure$ -BEGIN - RETURN QUERY SELECT * - FROM vm_interface_view - WHERE vmt_guid = v_template_id - AND (NOT v_is_filtered OR EXISTS (SELECT 1 - FROM user_vm_template_permissions_view - WHERE user_id = v_user_id AND entity_id = v_template_id)); - -END; $procedure$ -LANGUAGE plpgsql; - - - -Create or replace FUNCTION GetVmInterfaceViewsByNetworkId(v_network_id UUID) RETURNS SETOF vm_interface_view - AS $procedure$ -BEGIN - RETURN QUERY SELECT vm_interface_view.* - FROM vm_interface_view - INNER JOIN network_cluster - ON network_cluster.cluster_id = vm_interface_view.vds_group_id - INNER JOIN network - ON network.id = network_cluster.network_id - AND network.name = vm_interface_view.network_name - WHERE network.id = v_network_id - AND vm_interface_view.vm_entity_type = 'VM'; -END; $procedure$ -LANGUAGE plpgsql; - - - -Create or replace FUNCTION GetVmTemplateInterfaceViewsByNetworkId(v_network_id UUID) RETURNS SETOF vm_interface_view - AS $procedure$ -BEGIN - RETURN QUERY SELECT vm_interface_view.* - FROM vm_interface_view - INNER JOIN network_cluster - ON network_cluster.cluster_id = vm_interface_view.vds_group_id - INNER JOIN network - ON network.id = network_cluster.network_id - AND network.name = vm_interface_view.network_name - WHERE network.id = v_network_id - AND vm_interface_view.vm_entity_type = 'TEMPLATE'; -END; $procedure$ -LANGUAGE plpgsql; - - -Create or replace FUNCTION GetMacsByDataCenterId(v_data_center_id UUID) RETURNS SETOF varchar - AS $procedure$ -BEGIN - RETURN QUERY SELECT mac_addr - FROM vm_interface_view - WHERE EXISTS ( - SELECT 1 FROM vm_static - JOIN vds_groups ON vm_static.vds_group_id = vds_groups.vds_group_id - WHERE vds_groups.storage_pool_id = v_data_center_id - AND vm_static.vm_guid = vm_interface_view.vm_guid); -END; $procedure$ -LANGUAGE plpgsql; - Create or replace FUNCTION set_network_exclusively_as_display(v_cluster_id UUID, v_network_id UUID) -- To view, visit http://gerrit.ovirt.org/17179 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iea17ab1f7b686c5674b33b353794456450719f8f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <masa...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches