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 <[email protected]>
---
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/NetworkClusterHelper.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/test/java/org/ovirt/engine/core/dao/network/NetworkClusterDaoTest.java
M packaging/dbscripts/network_sp.sql
A packaging/dbscripts/upgrade/03_06_0830_add_gluster_to_network_cluster.sql
13 files changed, 115 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/71/37471/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 e9e10f5..75ce347 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
@@ -57,7 +57,8 @@
                         NetworkStatus.OPERATIONAL,
                         true,
                         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 b7919f0..276e40f 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
@@ -126,7 +126,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..b1881e3 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
@@ -27,7 +27,7 @@
 
 public abstract class NetworkParametersBuilder {
 
-    private CommandContext commandContext;
+    private final CommandContext commandContext;
 
     public NetworkParametersBuilder(CommandContext commandContext) {
         this.commandContext = commandContext;
@@ -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 0d2068a..f64e176 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
@@ -214,6 +214,10 @@
             getNetworkClusterDao().setNetworkExclusivelyAsMigration(clusterId, 
network.getId());
         }
 
+        if (network.getCluster().isGluster()) {
+            getNetworkClusterDao().setNetworkExclusivelyAsGluster(clusterId, 
network.getId());
+        }
+
         NetworkClusterHelper.setStatus(clusterId, network);
     }
 
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
index 83a8d6a..a07819f 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/NetworkClusterHelper.java
@@ -64,6 +64,11 @@
             updateManagementNetwork = true;
         }
 
+        if (oldNetworkCluster.isGluster()) {
+            getManagementNetworkCluster().setGluster(true);
+            updateManagementNetwork = true;
+        }
+
         if (updateManagementNetwork) {
             getNetworkClusterDao().update(managementNetworkCluster);
         }
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 610c602..1730898 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
@@ -79,6 +79,11 @@
                     getNetworkCluster().isMigration() ? 
getPersistedNetwork().getId() : getManagementNetwork().getId());
         }
 
+        if (getNetworkCluster().isGluster() != 
getOldNetworkCluster().isGluster()) {
+            
getNetworkClusterDAO().setNetworkExclusivelyAsGluster(getVdsGroupId(),
+                    getNetworkCluster().isGluster() ? 
getPersistedNetwork().getId() : getManagementNetwork().getId());
+        }
+
         NetworkClusterHelper.setStatus(getVdsGroupId(), getPersistedNetwork());
         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..fcadabc 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,6 +17,7 @@
      */
     private boolean required;
     private boolean migration;
+    private boolean gluster;
 
     public NetworkCluster() {
         this (null, null, NetworkStatus.NON_OPERATIONAL, false, true, false);
@@ -32,6 +33,16 @@
             boolean display,
             boolean required,
             boolean migration) {
+        this(clusterId, networkId, status, display, required, migration, 
false);
+    }
+
+    public NetworkCluster(Guid clusterId,
+            Guid networkId,
+            NetworkStatus status,
+            boolean display,
+            boolean required,
+            boolean migration,
+            boolean gluster) {
         this(required);
         id = new NetworkClusterId();
         id.setClusterId(clusterId);
@@ -39,6 +50,7 @@
         this.status = status;
         this.display = display;
         this.migration = migration;
+        this.gluster = gluster;
     }
 
     @Override
@@ -119,6 +131,8 @@
                 .append(isRequired())
                 .append(", migration=")
                 .append(isMigration())
+                .append(", gluster=")
+                .append(isGluster())
                 .append("}");
         return builder.toString();
     }
@@ -132,6 +146,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 +177,17 @@
         if (migration != other.migration) {
             return false;
         }
+        if (gluster != other.gluster) {
+            return false;
+        }
         return true;
     }
+
+    public boolean isGluster() {
+        return gluster;
+    }
+
+    public void setGluster(boolean gluster) {
+        this.gluster = gluster;
+    }
 }
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..017fbb4 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("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("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("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/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..10b8ccf 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,18 @@
             }
         }
     }
+
+    @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());
+            }
+        }
+    }
 }
diff --git a/packaging/dbscripts/network_sp.sql 
b/packaging/dbscripts/network_sp.sql
index c6ad01e..4e76a15 100644
--- a/packaging/dbscripts/network_sp.sql
+++ b/packaging/dbscripts/network_sp.sql
@@ -196,7 +196,7 @@
            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, 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 +225,8 @@
     network_cluster.status,
     network_cluster.is_display,
     network_cluster.required,
-    network_cluster.migration
+    network_cluster.migration,
+    network_cluster.gluster
    FROM network
    INNER JOIN network_cluster
    ON network.id = network_cluster.network_id
@@ -930,12 +931,13 @@
    v_status INTEGER,
    v_is_display BOOLEAN,
    v_required BOOLEAN,
-   v_migration BOOLEAN)
+   v_migration BOOLEAN,
+   v_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, gluster)
+       VALUES(v_cluster_id, v_network_id, v_status, v_is_display, v_required, 
v_migration, v_gluster);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -947,12 +949,14 @@
     v_status INTEGER,
     v_is_display BOOLEAN,
     v_required BOOLEAN,
-    v_migration BOOLEAN)
+    v_migration BOOLEAN,
+    v_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
+   SET status = v_status,is_display = v_is_display, required = v_required, 
migration = v_migration,
+   gluster = v_gluster
    WHERE cluster_id = v_cluster_id AND network_id = v_network_id;
 END; $procedure$
 LANGUAGE plpgsql;
@@ -1100,6 +1104,24 @@
 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 gluster = true
+   WHERE cluster_id = v_cluster_id AND network_id = v_network_id;
+
+   IF FOUND THEN
+       UPDATE network_cluster
+       SET gluster = false
+       WHERE cluster_id = v_cluster_id AND network_id != v_network_id;
+   END IF;
+
+END; $procedure$
+LANGUAGE plpgsql;
+
 
 ----------------------------------------------------------------------
 --  Vnic Profile
diff --git 
a/packaging/dbscripts/upgrade/03_06_0830_add_gluster_to_network_cluster.sql 
b/packaging/dbscripts/upgrade/03_06_0830_add_gluster_to_network_cluster.sql
new file mode 100644
index 0000000..2f2220e
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_06_0830_add_gluster_to_network_cluster.sql
@@ -0,0 +1 @@
+select fn_db_add_column('network_cluster', 'gluster', 'boolean NOT NULL 
DEFAULT false');


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

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

Reply via email to