Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: show bricks status in volumes table
......................................................................

webadmin: show bricks status in volumes table

Replaced 'Number of Bricks' column of volumes table
with 'Bricks' column.
This column will show no.of bricks up and no.of bricks
down for the volume with up and down images.

Change-Id: Ia2bf7185fdcdc857c406cec5e7d0a1024e1ab8a3
Signed-off-by: Kanagaraj M <kmayi...@redhat.com>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusCell.java
A 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusColumn.java
5 files changed, 93 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/21736/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index b8680cf..bf71a2e 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -2531,8 +2531,8 @@
     @DefaultStringValue("Volume Type")
     String volumeTypeVolume();
 
-    @DefaultStringValue("Number of Bricks")
-    String numberOfBricksVolume();
+    @DefaultStringValue("Bricks")
+    String bricksStatusVolume();
 
     @DefaultStringValue("Replica Count")
     String replicaCountVolume();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
index c0aef6b..9792ba3 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationTemplates.java
@@ -127,6 +127,9 @@
     @Template("<div style='line-height: 100%; text-align: center; 
vertical-align: middle;'>{0}</div>")
     SafeHtml image(SafeHtml statusImage);
 
+    @Template("<div>{0} {1} {2} {3}</div>")
+    SafeHtml volumeBrickStatusTemplate(SafeHtml upImage, int upCount, SafeHtml 
downImage, int downCount);
+
     @Template("<div style='line-height: 100%; text-align: center; 
vertical-align: middle; border: solid 1px transparent; '>{0}</div>")
     SafeHtml volumeActivityMenu(SafeHtml statusImage);
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
index ea6a8db..a208b81 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVolumeView.java
@@ -24,6 +24,7 @@
 import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivityColumn;
 import 
org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivitySeperatorCell;
 import 
org.ovirt.engine.ui.webadmin.widget.table.column.VolumeActivityStatusColumn;
+import 
org.ovirt.engine.ui.webadmin.widget.table.column.VolumeBrickStatusColumn;
 import org.ovirt.engine.ui.webadmin.widget.table.column.VolumeStatusColumn;
 
 import com.google.gwt.cell.client.HasCell;
@@ -79,14 +80,7 @@
                 };
         getTable().addColumn(volumeTypeColumn, constants.volumeTypeVolume(), 
"150px"); //$NON-NLS-1$
 
-        TextColumnWithTooltip<GlusterVolumeEntity> numOfBricksColumn =
-                new TextColumnWithTooltip<GlusterVolumeEntity>() {
-                    @Override
-                    public String getValue(GlusterVolumeEntity object) {
-                        return Integer.toString(object.getBricks().size());
-                    }
-                };
-        getTable().addColumn(numOfBricksColumn, 
constants.numberOfBricksVolume(), "150px"); //$NON-NLS-1$
+        getTable().addColumn(new VolumeBrickStatusColumn(), 
constants.bricksStatusVolume(), "150px"); //$NON-NLS-1$
 
         MenuCell<GlusterTaskSupport> rebalanceMenuCell = 
getRebalanceActivityMenu(constants);
         MenuCell<GlusterTaskSupport> removeBricksMenuCell = 
getRemoveBrickActivityMenu(constants);
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusCell.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusCell.java
new file mode 100644
index 0000000..1c51667
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusCell.java
@@ -0,0 +1,68 @@
+package org.ovirt.engine.ui.webadmin.widget.table.column;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity;
+import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus;
+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.SafeHtml;
+import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
+import com.google.gwt.user.client.ui.AbstractImagePrototype;
+
+public class VolumeBrickStatusCell extends AbstractCell<GlusterVolumeEntity> {
+
+    ApplicationResources resources = 
ClientGinjectorProvider.getApplicationResources();
+
+    ApplicationConstants constants = 
ClientGinjectorProvider.getApplicationConstants();
+
+    ApplicationTemplates applicationTemplates = 
ClientGinjectorProvider.getApplicationTemplates();
+
+    @Override
+    public void render(Context context, GlusterVolumeEntity volume, 
SafeHtmlBuilder sb) {
+        // Nothing to render if no volume is provided:
+        if (volume == null) {
+            return;
+        }
+
+        int upBricks = 0;
+        int downBricks = 0;
+        for (GlusterBrickEntity brick : volume.getBricks()) {
+            if (brick.isOnline()) {
+                upBricks++;
+            }
+            else {
+                downBricks++;
+            }
+        }
+
+        ImageResource upImage = resources.upImage();
+        ImageResource downImage = resources.downImage();
+
+        // Generate the HTML for the images
+        SafeHtml upImageHtml = 
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(upImage).getHTML());
+        SafeHtml downImageHtml = 
SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(downImage).getHTML());
+        sb.append(applicationTemplates.volumeBrickStatusTemplate(upImageHtml, 
upBricks, downImageHtml, downBricks));
+    }
+
+    public int countDownBricks(GlusterVolumeEntity volume) {
+        int downCount = 0;
+        int upCount = 0;
+        for (GlusterBrickEntity brick : volume.getBricks()) {
+            if (brick.getStatus() == GlusterStatus.UP) {
+                upCount++;
+            } else {
+                downCount++;
+            }
+            if (upCount > 0 && downCount > 0) {
+                return downCount;
+            }
+        }
+        return downCount;
+    }
+}
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusColumn.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusColumn.java
new file mode 100644
index 0000000..4828f79
--- /dev/null
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/widget/table/column/VolumeBrickStatusColumn.java
@@ -0,0 +1,18 @@
+package org.ovirt.engine.ui.webadmin.widget.table.column;
+
+import 
org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity;
+
+import com.google.gwt.user.cellview.client.Column;
+
+public class VolumeBrickStatusColumn extends Column<GlusterVolumeEntity, 
GlusterVolumeEntity> {
+
+    public VolumeBrickStatusColumn() {
+        super(new VolumeBrickStatusCell());
+    }
+
+    @Override
+    public GlusterVolumeEntity getValue(GlusterVolumeEntity object) {
+        return object;
+    }
+
+}


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia2bf7185fdcdc857c406cec5e7d0a1024e1ab8a3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Kanagaraj M <kmayi...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to