Alona Kaplan has uploaded a new change for review.

Change subject: engine: adding migration property to NetworCluster
......................................................................

engine: adding migration property to NetworCluster

Updating the business entity and the related db scripts.

This property will be used to indicate whether the network is the cluster's
migration network.

Change-Id: I199b1f48b6d6096db2425c594e88455640dc626c
Signed-off-by: Alona Kaplan <[email protected]>
---
M backend/manager/dbscripts/create_views.sql
M backend/manager/dbscripts/network_sp.sql
A 
backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.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/NetworkClusterDaoTest.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
13 files changed, 103 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/12962/1

diff --git a/backend/manager/dbscripts/create_views.sql 
b/backend/manager/dbscripts/create_views.sql
index 53f7a38..5946d26 100644
--- a/backend/manager/dbscripts/create_views.sql
+++ b/backend/manager/dbscripts/create_views.sql
@@ -1075,7 +1075,7 @@
 AS
 SELECT network_cluster.cluster_id AS cluster_id, network_cluster.network_id AS 
network_id, network.name as network_name,
        network_cluster.status as status, network_cluster.required as required, 
network_cluster.is_display as is_display,
-       vds_groups.name as cluster_name
+       network_cluster.migration as migration, vds_groups.name as cluster_name
 FROM network_cluster
 INNER JOIN network ON network_cluster.network_id = network.id
 INNER JOIN vds_groups ON network_cluster.cluster_id = vds_groups.vds_group_id;
diff --git a/backend/manager/dbscripts/network_sp.sql 
b/backend/manager/dbscripts/network_sp.sql
index 6f0ac8d..619dbb7 100644
--- a/backend/manager/dbscripts/network_sp.sql
+++ b/backend/manager/dbscripts/network_sp.sql
@@ -177,7 +177,7 @@
 CREATE TYPE networkViewClusterType AS(id uuid,name VARCHAR(50),description 
VARCHAR(4000),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, network_id UUID,cluster_id UUID, 
status INTEGER, is_display BOOLEAN,
-           required BOOLEAN);
+           required BOOLEAN, migration BOOLEAN);
 Create or replace FUNCTION GetAllNetworkByClusterId(v_id UUID, v_user_id uuid, 
v_is_filtered boolean)
 RETURNS SETOF networkViewClusterType
    AS $procedure$
@@ -200,7 +200,8 @@
     network_cluster.cluster_id,
     network_cluster.status,
     network_cluster.is_display,
-    network_cluster.required
+    network_cluster.required,
+    network_cluster.migration
    FROM network
    INNER JOIN network_cluster
    ON network.id = network_cluster.network_id
@@ -719,12 +720,13 @@
    v_network_id UUID,
    v_status INTEGER,
    v_is_display BOOLEAN,
-   v_required BOOLEAN)
+   v_required BOOLEAN,
+   v_migration BOOLEAN)
 RETURNS VOID
    AS $procedure$
 BEGIN
-INSERT INTO network_cluster(cluster_id, network_id, status, is_display, 
required)
-       VALUES(v_cluster_id, v_network_id, v_status, v_is_display, v_required);
+INSERT INTO network_cluster(cluster_id, network_id, status, is_display, 
required, migration)
+       VALUES(v_cluster_id, v_network_id, v_status, v_is_display, v_required, 
v_migration);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -735,12 +737,13 @@
     v_network_id UUID,
     v_status INTEGER,
     v_is_display BOOLEAN,
-    v_required BOOLEAN)
+    v_required BOOLEAN,
+    v_migration BOOLEAN)
 RETURNS VOID
    AS $procedure$
 BEGIN
    UPDATE network_cluster
-   SET status = v_status,is_display = v_is_display, required = v_required
+   SET status = v_status,is_display = v_is_display, required = v_required, 
migration = v_migration
    WHERE cluster_id = v_cluster_id AND network_id = v_network_id;
 END; $procedure$
 LANGUAGE plpgsql;
@@ -940,3 +943,23 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+
+
+Create or replace FUNCTION set_network_exclusively_as_migration(v_cluster_id 
UUID, v_network_id UUID)
+RETURNS VOID
+   AS $procedure$
+BEGIN
+
+   UPDATE network_cluster
+   SET migration = true
+   WHERE cluster_id = v_cluster_id AND network_id = v_network_id;
+
+   IF FOUND THEN
+       UPDATE network_cluster
+       SET migration = false
+       WHERE cluster_id = v_cluster_id AND network_id != v_network_id;
+   END IF;
+
+END; $procedure$
+LANGUAGE plpgsql;
+
diff --git 
a/backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql
 
b/backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql
new file mode 100644
index 0000000..7290b90
--- /dev/null
+++ 
b/backend/manager/dbscripts/upgrade/03_02_0490_add_migration_to_network_cluster.sql
@@ -0,0 +1 @@
+select fn_db_add_column('network_cluster', 'migration', 'boolean NOT NULL 
DEFAULT false');
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java
index 51dc3af..827bead 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsGroupCommand.java
@@ -85,7 +85,7 @@
             if (net != null) {
                 DbFacade.getInstance().getNetworkClusterDao().save(
                         new 
NetworkCluster(getParameters().getVdsGroup().getId(), net.getId(),
-                                NetworkStatus.OPERATIONAL, false, true));
+                                NetworkStatus.OPERATIONAL, false, true, 
false));
             }
         }
         setActionReturnValue(getVdsGroup().getId());
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java
index 5ef561e..2fd2605 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVdsGroupCommand.java
@@ -98,7 +98,7 @@
                 for (Network net : storagePoolNets) {
                     if (StringUtils.equals(net.getName(), managementNetwork)) {
                         getNetworkClusterDAO().save(new 
NetworkCluster(getVdsGroup().getId(), net.getId(),
-                                NetworkStatus.OPERATIONAL, true, true));
+                                NetworkStatus.OPERATIONAL, true, true, true));
                     }
                 }
             }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
index 12c879b..c2793a2 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
@@ -49,7 +49,10 @@
             getNetworkClusterDAO().update(getNetworkCluster());
         } else {
             getNetworkClusterDAO().save(new NetworkCluster(getVdsGroupId(), 
getNetwork().getId(),
-                    NetworkStatus.OPERATIONAL, false, 
getNetworkCluster().isRequired()));
+                    NetworkStatus.OPERATIONAL,
+                    false,
+                    getNetworkCluster().isRequired(),
+                    getNetworkCluster().isMigration()));
         }
         if (getNetwork().getCluster().isDisplay()) {
             
getNetworkClusterDAO().setNetworkExclusivelyAsDisplay(getVdsGroupId(), 
getNetwork().getId());
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
index 127309b..57b8dce 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AttachNetworkToVdsGroupParameter.java
@@ -20,7 +20,8 @@
 
                 // Cluster attachment data can sometimes be missing, so use 
defaults in that case.
                 net.getCluster() == null ? false : 
net.getCluster().isDisplay(),
-                net.getCluster() == null ? true : 
net.getCluster().isRequired()));
+                net.getCluster() == null ? true : 
net.getCluster().isRequired(),
+                net.getCluster() == null ? false : 
net.getCluster().isMigration()));
         _network = net;
     }
 
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java
index b3a1988..fbe4611 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/network/NetworkCluster.java
@@ -16,16 +16,23 @@
      * host during monitoring.
      */
     private boolean required = true;
+    private boolean migration;
 
     public NetworkCluster() {
     }
 
-    public NetworkCluster(Guid clusterId, Guid networkId, NetworkStatus 
status, boolean display, boolean required) {
+    public NetworkCluster(Guid clusterId,
+            Guid networkId,
+            NetworkStatus status,
+            boolean display,
+            boolean required,
+            boolean migration) {
         id.setClusterId(clusterId);
         id.setNetworkId(networkId);
         this.status = status;
         this.display = display;
         this.required = required;
+        this.migration = migration;
     }
 
     @Override
@@ -78,6 +85,14 @@
         this.required = required;
     }
 
+    public boolean isMigration() {
+        return migration;
+    }
+
+    public void setMigration(boolean migration) {
+        this.migration = migration;
+    }
+
     @Override
     public Object getQueryableId() {
         return getId();
@@ -94,6 +109,8 @@
                 .append(isDisplay())
                 .append(", required=")
                 .append(isRequired())
+                .append(", migration=")
+                .append(isMigration())
                 .append("}");
         return builder.toString();
     }
@@ -106,6 +123,7 @@
         result = prime * result + ((status == null) ? 0 : status.hashCode());
         result = prime * result + ((id == null) ? 0 : id.hashCode());
         result = prime * result + (required ? 11 : 13);
+        result = prime * result + (migration ? 1231 : 1237);
         return result;
     }
 
@@ -133,6 +151,9 @@
         if (required != other.required) {
             return false;
         }
+        if (migration != other.migration) {
+            return false;
+        }
         return true;
     }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java
index 4bccdb6..9dd9c4b 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDao.java
@@ -83,4 +83,12 @@
      * @param networkId
      */
     void setNetworkExclusivelyAsDisplay(Guid clusterId, Guid networkId);
+
+    /**
+     * Sets this cluster network as the only migration network on the cluster.
+     *
+     * @param clusterId
+     * @param networkId
+     */
+    void setNetworkExclusivelyAsMigration(Guid clusterId, Guid networkId);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java
index 1ca3a5b..c392c4f 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoDbFacadeImpl.java
@@ -25,6 +25,7 @@
                     
entity.setStatus(NetworkStatus.forValue(rs.getInt("status")));
                     entity.setDisplay(rs.getBoolean("is_display"));
                     entity.setRequired(rs.getBoolean("required"));
+                    entity.setMigration(rs.getBoolean("migration"));
                     return entity;
                 }
             };
@@ -73,7 +74,8 @@
                 .addValue("network_id", cluster.getNetworkId())
                 .addValue("status", cluster.getStatus())
                 .addValue("is_display", cluster.isDisplay())
-                .addValue("required", cluster.isRequired());
+                .addValue("required", cluster.isRequired())
+                .addValue("migration", cluster.isMigration());
 
         getCallsHandler().executeModification("Insertnetwork_cluster", 
parameterSource);
     }
@@ -85,7 +87,8 @@
                 .addValue("network_id", cluster.getNetworkId())
                 .addValue("status", cluster.getStatus())
                 .addValue("is_display", cluster.isDisplay())
-                .addValue("required", cluster.isRequired());
+                .addValue("required", cluster.isRequired())
+                .addValue("migration", cluster.isMigration());
 
         getCallsHandler().executeModification("Updatenetwork_cluster", 
parameterSource);
     }
@@ -116,4 +119,12 @@
 
         
getCallsHandler().executeModification("set_network_exclusively_as_display", 
parameterSource);
     }
+
+    @Override
+    public void setNetworkExclusivelyAsMigration(Guid clusterId, Guid 
networkId) {
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("cluster_id", clusterId).addValue("network_id", 
networkId);
+
+        
getCallsHandler().executeModification("set_network_exclusively_as_migration", 
parameterSource);
+    }
 }
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 0e61ccd..04148bc 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
@@ -122,6 +122,7 @@
             entity.getCluster().setDisplay((Boolean) 
rs.getObject("is_display"));
             entity.getCluster().setRequired(rs.getBoolean("required"));
             
entity.getCluster().setStatus(NetworkStatus.forValue(rs.getInt("status")));
+            entity.getCluster().setMigration((Boolean) 
rs.getObject("migration"));
 
             return entity;
         }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java
index ec9bb31..2383144 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java
@@ -207,4 +207,19 @@
             }
         }
     }
+
+    @Test
+    public void testSetMigration() {
+        
dao.setNetworkExclusivelyAsMigration(existingNetworkCluster.getClusterId(),
+                existingNetworkCluster.getNetworkId());
+        List<NetworkCluster> allForCluster = 
dao.getAllForCluster(existingNetworkCluster.getClusterId());
+        for (NetworkCluster net : allForCluster) {
+            if 
(net.getClusterId().equals(existingNetworkCluster.getClusterId())
+                    && 
net.getNetworkId().equals(existingNetworkCluster.getNetworkId())) {
+                assertTrue(net.isMigration());
+            } else {
+                assertFalse(net.isMigration());
+            }
+        }
+    }
 }
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 97ace3a..a507d37 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -721,12 +721,14 @@
         <column>status</column>
         <column>is_display</column>
         <column>required</column>
+        <column>migration</column>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607188</value>
             <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d1</value>
             <value>1</value>
             <value>0</value>
             <value>0</value>
+            <value>0</value>
         </row>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607189</value>
@@ -734,6 +736,7 @@
             <value>1</value>
             <value>0</value>
             <value>0</value>
+            <value>1</value>
         </row>
         <row>
             <value>58d5c1c6-cb15-4832-b2a4-023770607189</value>
@@ -741,6 +744,7 @@
             <value>1</value>
             <value>0</value>
             <value>0</value>
+            <value>0</value>
         </row>
     </table>
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I199b1f48b6d6096db2425c594e88455640dc626c
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to