Sahina Bose has uploaded a new change for review.

Change subject: engine: Add gluster role to network cluster
......................................................................

engine: Add gluster role to network cluster

Added a role to specify a network to be used for
gluster data traffic

Change-Id: Idac78d2c57f4d09aeb368b135f45dcf3237415e7
Bug-Url: https://bugzilla.redhat.com/1049994
Signed-off-by: Sahina Bose <sab...@redhat.com>
---
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/NetworkParametersBuilder.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/AttachNetworkToVdsGroupCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.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 packaging/dbscripts/network_sp.sql
A packaging/dbscripts/upgrade/03_05_1360_add_gluster_to_network_cluster.sql
13 files changed, 109 insertions(+), 16 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/09/39709/1

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 327a71c..134eac1 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
@@ -64,7 +64,7 @@
             if (net != null) {
                 DbFacade.getInstance().getNetworkClusterDao().save(
                         new 
NetworkCluster(getParameters().getVdsGroup().getId(), net.getId(),
-                                NetworkStatus.OPERATIONAL, true, true, true));
+                                NetworkStatus.OPERATIONAL, true, true, true, 
false));
             }
         }
 
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 8313f41..910e7df 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
@@ -127,7 +127,8 @@
                     NetworkStatus.OPERATIONAL,
                     true,
                     true,
-                    true));
+                    true,
+                    false));
         }
 
         alertIfFencingDisabled();
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkParametersBuilder.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkParametersBuilder.java
index 8e1b0d8..6f2c885 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkParametersBuilder.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/NetworkParametersBuilder.java
@@ -161,7 +161,7 @@
     }
 
     protected void addBootProtocolForRoleNetwork(NetworkCluster 
networkCluster, VdsNetworkInterface nic) {
-        if ((networkCluster.isDisplay() || networkCluster.isMigration())
+        if ((networkCluster.isDisplay() || networkCluster.isMigration() || 
networkCluster.isGluster())
                 && (nic.getBootProtocol() == null || nic.getBootProtocol() == 
NetworkBootProtocol.NONE)) {
             nic.setBootProtocol(NetworkBootProtocol.DHCP);
         }
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 308f985..12523c8 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
@@ -223,6 +223,7 @@
                 NetworkStatus.OPERATIONAL,
                 false,
                 networkCluster.isRequired(),
+                false,
                 false));
 
         if (network.getCluster().isDisplay()) {
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
index 24ba3d9..4be1b6c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/UpdateNetworkOnClusterCommand.java
@@ -93,6 +93,11 @@
                     getNetworkCluster().isMigration() ? getNetwork().getId() : 
getManagementNetwork().getId());
         }
 
+        if (getNetworkCluster().isGluster() != 
getOldNetworkCluster().isGluster()) {
+            
getNetworkClusterDAO().setNetworkExclusivelyAsGluster(getVdsGroupId(),
+                    getNetworkCluster().isGluster() ? getNetwork().getId() : 
null);
+        }
+
         NetworkClusterHelper.setStatus(getVdsGroupId(), getNetwork());
         setSucceeded(true);
     }
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 57b8dce..88a63b4 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
@@ -21,7 +21,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 ? false : 
net.getCluster().isMigration()));
+                net.getCluster() == null ? false : 
net.getCluster().isMigration(),
+                net.getCluster() == null ? false : 
net.getCluster().isGluster()));
         _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 da42b82..893998e 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
@@ -17,9 +17,10 @@
      */
     private boolean required;
     private boolean migration;
+    private boolean gluster;
 
     public NetworkCluster() {
-        this (null, null, NetworkStatus.NON_OPERATIONAL, false, true, false);
+        this(null, null, NetworkStatus.NON_OPERATIONAL, false, true, false, 
false);
     }
 
     public NetworkCluster(boolean required) {
@@ -31,7 +32,8 @@
             NetworkStatus status,
             boolean display,
             boolean required,
-            boolean migration) {
+            boolean migration,
+            boolean gluster) {
         this(required);
         id = new NetworkClusterId();
         id.setClusterId(clusterId);
@@ -39,6 +41,7 @@
         this.status = status;
         this.display = display;
         this.migration = migration;
+        this.gluster = gluster;
     }
 
     @Override
@@ -101,6 +104,14 @@
         this.migration = migration;
     }
 
+    public boolean isGluster() {
+        return gluster;
+    }
+
+    public void setGluster(boolean gluster) {
+        this.gluster = gluster;
+    }
+
     @Override
     public Object getQueryableId() {
         return getId();
@@ -119,6 +130,8 @@
                 .append(isRequired())
                 .append(", migration=")
                 .append(isMigration())
+                .append(", gluster=")
+                .append(isGluster())
                 .append("}");
         return builder.toString();
     }
@@ -132,6 +145,7 @@
         result = prime * result + ((id == null) ? 0 : id.hashCode());
         result = prime * result + (required ? 11 : 13);
         result = prime * result + (migration ? 1231 : 1237);
+        result = prime * result + (gluster ? 1231 : 1237);
         return result;
     }
 
@@ -162,6 +176,10 @@
         if (migration != other.migration) {
             return false;
         }
+        if (gluster != other.gluster) {
+            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 9dd9c4b..9738722 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
@@ -91,4 +91,12 @@
      * @param networkId
      */
     void setNetworkExclusivelyAsMigration(Guid clusterId, Guid networkId);
+
+    /**
+     * Sets this cluster network as the only gluster storage network on the 
cluster.
+     *
+     * @param clusterId
+     * @param networkId
+     */
+    void setNetworkExclusivelyAsGluster(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 d69221f..854bba6 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
@@ -26,6 +26,7 @@
                     entity.setDisplay(rs.getBoolean("is_display"));
                     entity.setRequired(rs.getBoolean("required"));
                     entity.setMigration(rs.getBoolean("migration"));
+                    entity.setGluster(rs.getBoolean("is_gluster"));
                     return entity;
                 }
             };
@@ -72,7 +73,8 @@
                 .addValue("status", cluster.getStatus())
                 .addValue("is_display", cluster.isDisplay())
                 .addValue("required", cluster.isRequired())
-                .addValue("migration", cluster.isMigration());
+                .addValue("migration", cluster.isMigration())
+                .addValue("is_gluster", cluster.isGluster());
 
         getCallsHandler().executeModification("Insertnetwork_cluster", 
parameterSource);
     }
@@ -85,7 +87,8 @@
                 .addValue("status", cluster.getStatus())
                 .addValue("is_display", cluster.isDisplay())
                 .addValue("required", cluster.isRequired())
-                .addValue("migration", cluster.isMigration());
+                .addValue("migration", cluster.isMigration())
+                .addValue("is_gluster", cluster.isGluster());
 
         getCallsHandler().executeModification("Updatenetwork_cluster", 
parameterSource);
     }
@@ -124,4 +127,14 @@
 
         
getCallsHandler().executeModification("set_network_exclusively_as_migration", 
parameterSource);
     }
+
+    @Override
+    public void setNetworkExclusivelyAsGluster(Guid clusterId, Guid networkId) 
{
+        MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
+                .addValue("cluster_id", clusterId).addValue("network_id", 
networkId);
+
+        
getCallsHandler().executeModification("set_network_exclusively_as_gluster", 
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 9717b53..dea961c 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
@@ -181,6 +181,7 @@
             entity.getCluster().setRequired(rs.getBoolean("required"));
             
entity.getCluster().setStatus(NetworkStatus.forValue(rs.getInt("status")));
             entity.getCluster().setMigration(rs.getBoolean("migration"));
+            entity.getCluster().setGluster(rs.getBoolean("is_gluster"));
 
             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 329afc3..1dcd4ad 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
@@ -221,4 +221,27 @@
             }
         }
     }
+
+    @Test
+    public void testSetGluster() {
+        
dao.setNetworkExclusivelyAsGluster(existingNetworkCluster.getClusterId(),
+                existingNetworkCluster.getNetworkId());
+        List<NetworkCluster> allForCluster = 
dao.getAllForCluster(existingNetworkCluster.getClusterId());
+        for (NetworkCluster net : allForCluster) {
+            if (net.getId().equals(existingNetworkCluster.getId())) {
+                assertTrue(net.isGluster());
+            } else {
+                assertFalse(net.isGluster());
+            }
+        }
+    }
+
+    @Test
+    public void testSetGlusterAsNull() {
+        
dao.setNetworkExclusivelyAsGluster(existingNetworkCluster.getClusterId(), null);
+        List<NetworkCluster> allForCluster = 
dao.getAllForCluster(existingNetworkCluster.getClusterId());
+        for (NetworkCluster net : allForCluster) {
+            assertFalse(net.isGluster());
+        }
+    }
 }
diff --git a/packaging/dbscripts/network_sp.sql 
b/packaging/dbscripts/network_sp.sql
index 9f9f5d7..f601c26 100644
--- a/packaging/dbscripts/network_sp.sql
+++ b/packaging/dbscripts/network_sp.sql
@@ -196,7 +196,8 @@
            mtu INTEGER, vm_network BOOLEAN, label TEXT,
            provider_network_provider_id UUID, provider_network_external_id 
TEXT, qos_id UUID,
            network_id UUID,cluster_id UUID, status INTEGER, is_display BOOLEAN,
-           required BOOLEAN, migration BOOLEAN);
+           required BOOLEAN, migration BOOLEAN, is_gluster BOOLEAN);
+
 Create or replace FUNCTION GetAllNetworkByClusterId(v_id UUID, v_user_id uuid, 
v_is_filtered boolean)
 RETURNS SETOF networkViewClusterType STABLE
    AS $procedure$
@@ -225,7 +226,8 @@
     network_cluster.status,
     network_cluster.is_display,
     network_cluster.required,
-    network_cluster.migration
+    network_cluster.migration,
+    network_cluster.is_gluster
    FROM network
    INNER JOIN network_cluster
    ON network.id = network_cluster.network_id
@@ -916,12 +918,13 @@
    v_status INTEGER,
    v_is_display BOOLEAN,
    v_required BOOLEAN,
-   v_migration BOOLEAN)
+   v_migration BOOLEAN,
+   v_is_gluster BOOLEAN)
 RETURNS VOID
    AS $procedure$
 BEGIN
-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);
+INSERT INTO network_cluster(cluster_id, network_id, status, is_display, 
required, migration, is_gluster)
+       VALUES(v_cluster_id, v_network_id, v_status, v_is_display, v_required, 
v_migration, v_is_gluster);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -933,13 +936,19 @@
     v_status INTEGER,
     v_is_display BOOLEAN,
     v_required BOOLEAN,
-    v_migration BOOLEAN)
+    v_migration BOOLEAN,
+    v_is_gluster BOOLEAN)
 RETURNS VOID
    AS $procedure$
 BEGIN
    UPDATE network_cluster
-   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;
+   SET status = v_status,
+       is_display = v_is_display,
+       required = v_required,
+       migration = v_migration,
+       is_gluster = v_is_gluster
+   WHERE cluster_id = v_cluster_id
+   AND network_id = v_network_id;
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -1086,6 +1095,18 @@
 END; $procedure$
 LANGUAGE plpgsql;
 
+Create or replace FUNCTION set_network_exclusively_as_gluster(v_cluster_id 
UUID, v_network_id UUID)
+RETURNS VOID
+   AS $procedure$
+BEGIN
+
+    UPDATE network_cluster
+    SET is_gluster = COALESCE(network_id = v_network_id, false)
+    WHERE cluster_id = v_cluster_id;
+
+END; $procedure$
+LANGUAGE plpgsql;
+
 
 ----------------------------------------------------------------------
 --  Vnic Profile
diff --git 
a/packaging/dbscripts/upgrade/03_05_1360_add_gluster_to_network_cluster.sql 
b/packaging/dbscripts/upgrade/03_05_1360_add_gluster_to_network_cluster.sql
new file mode 100644
index 0000000..0daaafd
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_05_1360_add_gluster_to_network_cluster.sql
@@ -0,0 +1 @@
+select fn_db_add_column('network_cluster', 'is_gluster', 'boolean NOT NULL 
DEFAULT false');


-- 
To view, visit https://gerrit.ovirt.org/39709
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idac78d2c57f4d09aeb368b135f45dcf3237415e7
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5-gluster
Gerrit-Owner: Sahina Bose <sab...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to