Sahina Bose has uploaded a new change for review.

Change subject: engine,webadmin: [WIP] Add an indicator if geo-replication is 
enabled
......................................................................

engine,webadmin: [WIP] Add an indicator if geo-replication is enabled

Added an indicator column to Volume tab, to indicate
if a volume is a geo-replication master or slave

Change-Id: I28178b8ef03ea7cc83097cb99bc2d2be90061434
Signed-off-by: Sahina Bose <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationResources.java
A 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_master.png
A 
frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_slave.png
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/VolumeInfoCell.java
M packaging/dbscripts/create_views.sql
7 files changed, 75 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/10/38310/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
index 0b1f4f2..a00475d 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java
@@ -62,7 +62,7 @@
     private Integer stripeCount;
 
     @Valid
-    private Map<String, GlusterVolumeOptionEntity> options;
+    private final Map<String, GlusterVolumeOptionEntity> options;
 
     @NotNull(message = "VALIDATION.GLUSTER.VOLUME.BRICKS.NOT_NULL", groups = 
{CreateEntity.class, CreateReplicatedVolume.class, CreateStripedVolume.class})
     @Valid
@@ -84,6 +84,10 @@
     private GlusterAsyncTask asyncTask;
 
     private GlusterVolumeAdvancedDetails advancedDetails;
+
+    private Boolean isGeoRepMaster;
+
+    private Boolean isGeoRepSlave;
 
     public GlusterVolumeEntity() {
         options = new LinkedHashMap<String, GlusterVolumeOptionEntity>();
@@ -330,6 +334,22 @@
         this.snapshotScheduled = snapshotScheduled;
     }
 
+    public Boolean getIsGeoRepMaster() {
+        return isGeoRepMaster;
+    }
+
+    public void setIsGeoRepMaster(Boolean isGeoRepMaster) {
+        this.isGeoRepMaster = isGeoRepMaster;
+    }
+
+    public Boolean getIsGeoRepSlave() {
+        return isGeoRepSlave;
+    }
+
+    public void setIsGeoRepSlave(Boolean isGeoRepSlave) {
+        this.isGeoRepSlave = isGeoRepSlave;
+    }
+
     public void removeBrick(GlusterBrickEntity GlusterBrick) {
         bricks.remove(GlusterBrick);
     }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java
index 7b59986..b95339e 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/gluster/GlusterVolumeDaoDbFacadeImpl.java
@@ -376,6 +376,8 @@
             entity.setStripeCount(rs.getInt("stripe_count"));
             entity.setSnapshotsCount(rs.getInt("snapshot_count"));
             entity.setSnapshotScheduled(rs.getBoolean("snapshot_scheduled"));
+            entity.setIsGeoRepMaster(rs.getBoolean("is_master"));
+            entity.setIsGeoRepSlave(rs.getBoolean("is_slave"));
             return entity;
         }
     }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationResources.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationResources.java
index 6341deb..c47ef99 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationResources.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationResources.java
@@ -197,6 +197,12 @@
     @Source("images/volume_all_bricks_down_warning.png")
     ImageResource volumeAllBricksDownWarning();
 
+    @Source("images/volume_georep_master.png")
+    ImageResource volumeGeoRepMaster();
+
+    @Source("images/volume_georep_slave.png")
+    ImageResource volumeGeoRepSlave();
+
     // Model-bound widgets
 
     @Source("images/snapshot.png")
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_master.png
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_master.png
new file mode 100644
index 0000000..884c048
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_master.png
Binary files differ
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_slave.png
 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_slave.png
new file mode 100644
index 0000000..47019b5
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/ui/common/images/volume_georep_slave.png
Binary files differ
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/VolumeInfoCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/VolumeInfoCell.java
new file mode 100644
index 0000000..a2b9c0a
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/cell/VolumeInfoCell.java
@@ -0,0 +1,37 @@
+package org.ovirt.engine.ui.webadmin.widget.table.cell;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+import org.ovirt.engine.ui.webadmin.ApplicationConstants;
+import org.ovirt.engine.ui.webadmin.ApplicationResources;
+import org.ovirt.engine.ui.webadmin.ApplicationTemplates;
+import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
+
+import com.google.gwt.cell.client.AbstractCell;
+import com.google.gwt.resources.client.ImageResource;
+import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
+
+public class VolumeInfoCell extends AbstractCell<GlusterVolumeEntity> {
+
+    ApplicationResources resources = 
ClientGinjectorProvider.getApplicationResources();
+
+    ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
+
+    ApplicationTemplates applicationTemplates = 
ClientGinjectorProvider.getApplicationTemplates();
+
+    protected ImageResource geoRepMasterImage = resources.volumeGeoRepMaster();
+    protected ImageResource geoRepSlaveImage = resources.volumeGeoRepSlave();
+
+
+    @Override
+    public void render(Context context, GlusterVolumeEntity volume, 
SafeHtmlBuilder sb) {
+        // Nothing to render if no volume is provided:
+        if (volume == null) {
+            return;
+        }
+        ImageResource img;
+        if (volume.getIsGeoRepMaster()) {
+            img = geoRepMasterImage;
+        }
+
+    }
+}
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 0a8ea46..a811997 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -2988,14 +2988,22 @@
 FROM
     user_disk_profile_permissions_view_base NATURAL
     JOIN engine_session_user_flat_groups;
+
 CREATE
 OR REPLACE VIEW gluster_volumes_view AS
 SELECT
     gluster_volumes.*,
-    vds_groups.name AS vds_group_name
+    vds_groups.name AS vds_group_name,
+    CASE WHEN EXISTS (SELECT session_id FROM gluster_georep_session WHERE 
master_volume_id = gluster_volumes.id) THEN true
+         ELSE false END 
+         as is_master,
+    CASE WHEN EXISTS (SELECT session_id FROM gluster_georep_session WHERE 
slave_volume_id = gluster_volumes.id) THEN true
+         ELSE false END 
+         as is_slave
 FROM
     gluster_volumes
 INNER JOIN vds_groups ON gluster_volumes.cluster_id = vds_groups.vds_group_id;
+
 CREATE
 OR REPLACE VIEW gluster_volume_snapshots_view AS
 SELECT


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

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