Moti Asayag has uploaded a new change for review.

Change subject: engine: Add label column to network
......................................................................

engine: Add label column to network

Extending the network table to persist the label
entity so it can managed as part of the network
entity.

Change-Id: I4e3c309cef92e63ebe6f1f48f19f8848e9bceb70
Signed-off-by: Moti Asayag <masa...@redhat.com>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
M packaging/dbscripts/create_views.sql
M packaging/dbscripts/network_sp.sql
A packaging/dbscripts/upgrade/03_04_0300_add_label_column_to_networks.sql
7 files changed, 67 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/34/22634/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java
index c78cca3..24e1936 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDao.java
@@ -102,4 +102,13 @@
      * @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
+     */
+    List<String> getAllNetworkLabelsForDataCenter(Guid id);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java
index e6b41b0..e110322 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkDaoDbFacadeImpl.java
@@ -92,6 +92,13 @@
     }
 
     @Override
+    public List<String> getAllNetworkLabelsForDataCenter(Guid id) {
+        return 
getCallsHandler().executeReadList("GetAllNetworkLabelsByDataCenterId",
+                StringRowMapper.instance,
+                createIdParameterMapper(id));
+    }
+
+    @Override
     protected MapSqlParameterSource createIdParameterMapper(Guid id) {
         return getCustomMapSqlParameterSource().addValue("id", id);
     }
@@ -115,7 +122,8 @@
                 .addValue("provider_network_provider_id",
                         network.getProvidedBy() == null ? null : 
network.getProvidedBy().getProviderId())
                 .addValue("provider_network_external_id",
-                        network.getProvidedBy() == null ? null : 
network.getProvidedBy().getExternalId());
+                        network.getProvidedBy() == null ? null : 
network.getProvidedBy().getExternalId())
+                .addValue("label", network.getLabel());
     }
 
     @Override
@@ -165,6 +173,7 @@
                         rs.getString("provider_network_external_id")));
             }
 
+            entity.setLabel(rs.getString("label"));
             return entity;
         }
 
@@ -179,4 +188,14 @@
             return new Network();
         }
     }
+
+    private static class StringRowMapper implements RowMapper<String> {
+        public static final StringRowMapper instance = new StringRowMapper();
+
+        @Override
+        public String mapRow(ResultSet rs, int rowNum) throws SQLException {
+            return new String(rs.getString("label"));
+        }
+
+    }
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java
index c5a0477..4a50290 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkDaoTest.java
@@ -279,6 +279,15 @@
     }
 
     /**
+     * Ensures a list of networks labels is returned for a given data-center
+     */
+    public void testGetAllNetworkLabelsForDataCenter() {
+        List<String> result = dao.getAllNetworkLabelsForDataCenter(datacenter);
+        assertNotNull(result);
+        assertFalse(result.isEmpty());
+    }
+
+    /**
      * Ensures that saving a network works as expected.
      */
     @Test
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 7f2bd49..78735b1 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -856,6 +856,7 @@
         <column>vm_network</column>
         <column>provider_network_provider_id</column>
         <column>provider_network_external_id</column>
+        <column>label</column>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607188</value>
             <value>engine</value>
@@ -869,6 +870,7 @@
             <value>6d849ebf-755f-4552-ad09-9a090cda105d</value>
             <value>0</value>
             <value>true</value>
+            <null />
             <null />
             <null />
         </row>
@@ -887,6 +889,7 @@
             <value>true</value>
             <null />
             <null />
+            <value>lbl1</value>
         </row>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607190</value>
@@ -903,6 +906,7 @@
             <value>true</value>
             <null />
             <null />
+            <value>lbl1</value>
         </row>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607200</value>
@@ -919,6 +923,7 @@
             <value>true</value>
             <value>1115c1c6-cb15-4832-b2a4-023770607111</value>
             <value>52d5c1c6-cb15-4832-b2a4-023770607200</value>
+            <null/>
         </row>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607201</value>
@@ -935,6 +940,7 @@
             <value>true</value>
             <value>1115c1c6-cb15-4832-b2a4-023770607111</value>
             <value>52d5c1c6-cb15-4832-b2a4-023770607200</value>
+            <null/>
         </row>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607191</value>
@@ -951,6 +957,7 @@
             <value>true</value>
             <null />
             <null />
+           <value>lbl2</value>
         </row>
     </table>
 
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 253dfc8..e138bfb 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -1165,6 +1165,7 @@
    network.storage_pool_id AS storage_pool_id,
    network.provider_network_provider_id AS provider_network_provider_id,
    network.provider_network_external_id AS provider_network_external_id,
+   network.label AS label,
    storage_pool.name AS storage_pool_name,
    storage_pool.compatibility_version AS compatibility_version,
    providers.name AS provider_name
diff --git a/packaging/dbscripts/network_sp.sql 
b/packaging/dbscripts/network_sp.sql
index aadfc46..15b4c2e 100644
--- a/packaging/dbscripts/network_sp.sql
+++ b/packaging/dbscripts/network_sp.sql
@@ -20,12 +20,13 @@
        v_mtu INTEGER,
        v_vm_network BOOLEAN,
        v_provider_network_provider_id UUID,
-       v_provider_network_external_id TEXT)
+       v_provider_network_external_id TEXT,
+       v_label TEXT)
 RETURNS VOID
    AS $procedure$
 BEGIN
-INSERT INTO network(addr, description, free_text_comment, id, name, subnet, 
gateway, type, vlan_id, stp, storage_pool_id, mtu, vm_network, 
provider_network_provider_id, provider_network_external_id)
-       VALUES(v_addr, v_description, v_free_text_comment, v_id, v_name, 
v_subnet, v_gateway, v_type, v_vlan_id, v_stp, v_storage_pool_id, v_mtu, 
v_vm_network, v_provider_network_provider_id, v_provider_network_external_id);
+INSERT INTO network(addr, description, free_text_comment, id, name, subnet, 
gateway, type, vlan_id, stp, storage_pool_id, mtu, vm_network, 
provider_network_provider_id, provider_network_external_id, label)
+       VALUES(v_addr, v_description, v_free_text_comment, v_id, v_name, 
v_subnet, v_gateway, v_type, v_vlan_id, v_stp, v_storage_pool_id, v_mtu, 
v_vm_network, v_provider_network_provider_id, v_provider_network_external_id, 
v_label);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -46,7 +47,8 @@
        v_mtu INTEGER,
        v_vm_network BOOLEAN,
        v_provider_network_provider_id UUID,
-       v_provider_network_external_id TEXT)
+       v_provider_network_external_id TEXT,
+       v_label TEXT)
 RETURNS VOID
 
        --The [network] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -58,7 +60,8 @@
       stp = v_stp,storage_pool_id = v_storage_pool_id, mtu = v_mtu,
       vm_network = v_vm_network,
       provider_network_provider_id = v_provider_network_provider_id,
-      provider_network_external_id = v_provider_network_external_id
+      provider_network_external_id = v_provider_network_external_id,
+      label = v_label
       WHERE id = v_id;
 END; $procedure$
 LANGUAGE plpgsql;
@@ -184,7 +187,7 @@
 DROP TYPE IF EXISTS networkViewClusterType CASCADE;
 CREATE TYPE networkViewClusterType AS(id uuid,name VARCHAR(50),description 
VARCHAR(4000), free_text_comment text, type INTEGER,
             addr VARCHAR(50),subnet VARCHAR(20),gateway VARCHAR(20),vlan_id 
INTEGER,stp BOOLEAN,storage_pool_id UUID,
-           mtu INTEGER, vm_network BOOLEAN,
+           mtu INTEGER, vm_network BOOLEAN, label TEXT,
            provider_network_provider_id UUID, provider_network_external_id 
TEXT,
            network_id UUID,cluster_id UUID, status INTEGER, is_display BOOLEAN,
            required BOOLEAN, migration BOOLEAN);
@@ -207,6 +210,7 @@
     network.storage_pool_id,
     network.mtu,
     network.vm_network,
+    network.label,
     network.provider_network_provider_id,
     network.provider_network_external_id,
     network_cluster.network_id,
@@ -255,7 +259,16 @@
 LANGUAGE plpgsql;
 
 
-
+Create or replace FUNCTION GetAllNetworkLabelsByDataCenterId(v_id UUID)
+RETURNS SETOF TEXT
+AS $procedure$
+BEGIN
+    RETURN QUERY
+    SELECT label as label
+    FROM network
+    WHERE network.storage_pool_id = v_id;
+END; $procedure$
+LANGUAGE plpgsql;
 
 --The GetByFK stored procedure cannot be created because the [network] table 
doesn't have at least one foreign key column or the foreign keys are also 
primary keys.
 
diff --git 
a/packaging/dbscripts/upgrade/03_04_0300_add_label_column_to_networks.sql 
b/packaging/dbscripts/upgrade/03_04_0300_add_label_column_to_networks.sql
new file mode 100644
index 0000000..3a62787
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_04_0300_add_label_column_to_networks.sql
@@ -0,0 +1 @@
+select fn_db_add_column('network', 'label', 'text');


-- 
To view, visit http://gerrit.ovirt.org/22634
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e3c309cef92e63ebe6f1f48f19f8848e9bceb70
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