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

Reply via email to