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
