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