Ramesh N has uploaded a new change for review. Change subject: gluster: vdsm change for fetching volume capacity info ......................................................................
gluster: vdsm change for fetching volume capacity info Fetch the volume capacity information as part of gluster volume advanced details. Change-Id: I126eb7057ee1cc9abb31c0a9579c48a5cccb8be0 Signed-off-by: Ramesh Nachimuthu <[email protected]> --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeAdvancedDetails.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeEntity.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSizeInfo.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeAdvancedDetailsVDSParameters.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeAdvancedDetailsVDSCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java M frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml 7 files changed, 229 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/44/24444/1 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeAdvancedDetails.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeAdvancedDetails.java index 9ca1ead..01af250 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeAdvancedDetails.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeAdvancedDetails.java @@ -1,8 +1,10 @@ package org.ovirt.engine.core.common.businessentities.gluster; import java.io.Serializable; +import java.util.Date; import java.util.List; +import org.ovirt.engine.core.common.utils.ObjectUtils; import org.ovirt.engine.core.compat.Guid; /** @@ -21,11 +23,14 @@ private List<BrickDetails> brickDetails; private List<GlusterServerService> serviceInfo; + private GlusterVolumeSizeInfo capacityInfo; + private Date updatedAt; public GlusterVolumeAdvancedDetails() { } public void copyDetailsFrom(GlusterVolumeAdvancedDetails volumeAdvancedDetails) { + setCapacityInfo(volumeAdvancedDetails.getCapacityInfo()); for (BrickDetails newBrickDetails : volumeAdvancedDetails.getBrickDetails()) { Guid newBrickId = newBrickDetails.getBrickProperties().getBrickId(); if (newBrickId != null) { @@ -105,4 +110,66 @@ public void setServiceInfo(List<GlusterServerService> serviceInfo) { this.serviceInfo = serviceInfo; } + + public GlusterVolumeSizeInfo getCapacityInfo() { + return capacityInfo; + } + + public void setCapacityInfo(GlusterVolumeSizeInfo capacityInfo) { + this.capacityInfo = capacityInfo; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((capacityInfo == null) ? 0 : capacityInfo.hashCode()); + result = prime * result + ((serviceInfo == null) ? 0 : serviceInfo.hashCode()); + result = prime * result + ((brickDetails == null) ? 0 : brickDetails.hashCode()); + result = prime * result + ((volumeId == null) ? 0 : volumeId.hashCode()); + result = prime * result + ((updatedAt == null) ? 0 : updatedAt.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof GlusterVolumeAdvancedDetails)) { + return false; + } + + if (this == obj) + return true; + + GlusterVolumeAdvancedDetails otherVolumeAdvancedDetails = (GlusterVolumeAdvancedDetails) obj; + + if (!ObjectUtils.objectsEqual(capacityInfo, otherVolumeAdvancedDetails.getCapacityInfo())) { + return false; + } + + if (!ObjectUtils.objectsEqual(brickDetails, otherVolumeAdvancedDetails.getBrickDetails())) { + return false; + } + + if (!ObjectUtils.objectsEqual(serviceInfo, otherVolumeAdvancedDetails.getServiceInfo())) { + return false; + } + + if (!ObjectUtils.objectsEqual(updatedAt, otherVolumeAdvancedDetails.getUpdatedAt())) { + return false; + } + + if (!ObjectUtils.objectsEqual(volumeId, otherVolumeAdvancedDetails.getVolumeId())) { + return false; + } + return true; + } + } 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 e7fc8c2..5a0f113 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 @@ -77,6 +77,8 @@ private GlusterAsyncTask asyncTask; + private GlusterVolumeAdvancedDetails advancedDetails; + public GlusterVolumeEntity() { options = new LinkedHashMap<String, GlusterVolumeOptionEntity>(); bricks = new ArrayList<GlusterBrickEntity>(); @@ -86,6 +88,7 @@ transportTypes = new LinkedHashSet<TransportType>(); volumeType = GlusterVolumeType.DISTRIBUTE; asyncTask = new GlusterAsyncTask(); + advancedDetails = new GlusterVolumeAdvancedDetails(); } @Override @@ -374,6 +377,7 @@ result = prime * result + ((accessProtocols == null) ? 0 : accessProtocols.hashCode()); result = prime * result + ((bricks == null) ? 0 : bricks.hashCode()); result = prime * result + ((asyncTask == null) ? 0 : asyncTask.hashCode()); + result = prime * result + ((advancedDetails == null) ? 0 : advancedDetails.hashCode()); return result; } @@ -417,6 +421,10 @@ return false; } + if (!ObjectUtils.objectsEqual(getAdvancedDetails(), volume.getAdvancedDetails())) { + return false; + } + return true; } @@ -453,4 +461,12 @@ public void setAsyncTask(GlusterAsyncTask asyncTask) { this.asyncTask = asyncTask; } + + public GlusterVolumeAdvancedDetails getAdvancedDetails() { + return advancedDetails; + } + + public void setAdvancedDetails(GlusterVolumeAdvancedDetails advancedDetails) { + this.advancedDetails = advancedDetails; + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSizeInfo.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSizeInfo.java new file mode 100644 index 0000000..6bb0da7 --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/gluster/GlusterVolumeSizeInfo.java @@ -0,0 +1,96 @@ +package org.ovirt.engine.core.common.businessentities.gluster; + +import java.io.Serializable; + +import org.ovirt.engine.core.common.utils.ObjectUtils; +import org.ovirt.engine.core.compat.Guid; + +public class GlusterVolumeSizeInfo implements Serializable { + private static final long serialVersionUID = -5145858224564431005L; + + private Guid volumeId; + + private Long totalSize; + + private Long freeSize; + + private Long usedSize; + + public GlusterVolumeSizeInfo() { + } + + public GlusterVolumeSizeInfo(Long totalSize, Long freeSize, Long usedSize) { + this.totalSize = totalSize; + this.freeSize = freeSize; + this.usedSize = usedSize; + } + + public Guid getVolumeId() { + return this.volumeId; + } + + public void setVolumeId(Guid id) { + this.volumeId = id; + } + + public Long getTotalSize() { + return totalSize; + } + + public void setTotalSize(Long totalSize) { + this.totalSize = totalSize; + } + + public Long getFreeSize() { + return freeSize; + } + + public void setFreeSize(Long freeSize) { + this.freeSize = freeSize; + } + + public Long getUsedSize() { + return usedSize; + } + + public void setUsedSize(Long usedSize) { + this.usedSize = usedSize; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((volumeId == null) ? 0 : volumeId.hashCode()); + result = prime * result + ((totalSize == null) ? 0 : totalSize.hashCode()); + result = prime * result + ((freeSize == null) ? 0 : freeSize.hashCode()); + result = prime * result + ((usedSize == null) ? 0 : usedSize.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof GlusterVolumeSizeInfo)) { + return false; + } + GlusterVolumeSizeInfo sizeInfo = (GlusterVolumeSizeInfo) obj; + + if (!ObjectUtils.objectsEqual(volumeId, sizeInfo.getVolumeId())) { + return false; + } + + if (!ObjectUtils.objectsEqual(totalSize, sizeInfo.getTotalSize())) { + return false; + } + + if (!ObjectUtils.objectsEqual(freeSize, sizeInfo.getFreeSize())) { + return false; + } + + if (!ObjectUtils.objectsEqual(usedSize, sizeInfo.getUsedSize())) { + return false; + } + + return true; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeAdvancedDetailsVDSParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeAdvancedDetailsVDSParameters.java index ad81e4e..83ff6e9 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeAdvancedDetailsVDSParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/gluster/GlusterVolumeAdvancedDetailsVDSParameters.java @@ -10,6 +10,20 @@ private Guid clusterId; private String brickName; private boolean detailRequired; + private boolean capacityInfoRequired; + + public GlusterVolumeAdvancedDetailsVDSParameters(Guid upServerId, + Guid clusterId, + String volumeName, + String brickName, + boolean detailRequired, + boolean capacityInfoRequired) { + super(upServerId, volumeName); + this.clusterId = clusterId; + this.brickName = brickName; + this.detailRequired = detailRequired; + this.capacityInfoRequired = capacityInfoRequired; + } public GlusterVolumeAdvancedDetailsVDSParameters(Guid upServerId, Guid clusterId, @@ -37,4 +51,12 @@ return brickName; } + public boolean isCapacityInfoRequired() { + return capacityInfoRequired; + } + + public void setCapacityInfoRequired(boolean capacityInfoRequired) { + this.capacityInfoRequired = capacityInfoRequired; + } + } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeAdvancedDetailsVDSCommand.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeAdvancedDetailsVDSCommand.java index e0db016..c9b5ead 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeAdvancedDetailsVDSCommand.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GetGlusterVolumeAdvancedDetailsVDSCommand.java @@ -25,20 +25,23 @@ protected void executeVdsBrokerCommand() { executeVolumeStatusInfo(""); GlusterVolumeAdvancedDetails volumeAdvancedDetails = result.getVolumeAdvancedDetails(); - - if (getParameters().isDetailRequired()) { + if (getParameters().isCapacityInfoRequired() || getParameters().isDetailRequired()) { if (getSucceeded()) { executeVolumeStatusInfo(GlusterVolumeStatusOption.DETAIL.name().toLowerCase()); if (getSucceeded()) { volumeAdvancedDetails.copyDetailsFrom(result.getVolumeAdvancedDetails()); - executeVolumeStatusInfo(GlusterVolumeStatusOption.CLIENTS.name().toLowerCase()); - if (getSucceeded()) { - volumeAdvancedDetails.copyClientsFrom(result.getVolumeAdvancedDetails()); - executeVolumeStatusInfo(GlusterVolumeStatusOption.MEM.name().toLowerCase()); + } + } + } + if (getParameters().isDetailRequired()) { + if (getSucceeded()) { + executeVolumeStatusInfo(GlusterVolumeStatusOption.CLIENTS.name().toLowerCase()); + if (getSucceeded()) { + volumeAdvancedDetails.copyClientsFrom(result.getVolumeAdvancedDetails()); + executeVolumeStatusInfo(GlusterVolumeStatusOption.MEM.name().toLowerCase()); - if (getSucceeded()) { - volumeAdvancedDetails.copyMemoryFrom(result.getVolumeAdvancedDetails()); - } + if (getSucceeded()) { + volumeAdvancedDetails.copyMemoryFrom(result.getVolumeAdvancedDetails()); } } } diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java index 0b6896b..5e2a5bb 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/gluster/GlusterVolumeStatusReturnForXmlRpc.java @@ -14,6 +14,7 @@ import org.ovirt.engine.core.common.businessentities.gluster.GlusterStatus; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeAdvancedDetails; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; +import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSizeInfo; import org.ovirt.engine.core.common.businessentities.gluster.MallInfo; import org.ovirt.engine.core.common.businessentities.gluster.MemoryStatus; import org.ovirt.engine.core.common.businessentities.gluster.Mempool; @@ -29,6 +30,7 @@ public class GlusterVolumeStatusReturnForXmlRpc extends StatusReturnForXmlRpc { private static final String STATUS = "status"; private static final String VOLUME_STATUS = "volumeStatus"; + private static final String VOLUME_STATUS_INFO = "volumeStatsInfo"; private static final String VOLUME_NAME = "name"; private static final String PORT = "port"; private static final String PID = "pid"; @@ -42,6 +44,7 @@ private static final String DETAIL_SIZE_TOTAL = "sizeTotal"; private static final String DETAIL_SIZE_FREE = "sizeFree"; + private static final String DETAIL_SIZE_USED = "sizeUsed"; private static final String DETAIL_DEVICE = "device"; private static final String DETAIL_BLOCK_SIZE = "blockSize"; private static final String DETAIL_MNT_OPTIONS = "mntOptions"; @@ -90,6 +93,18 @@ List<BrickDetails> brickDetails = prepareBrickDetails(volume, (Object[]) statusInfo.get(BRICKS)); volumeAdvancedDetails.setBrickDetails(brickDetails); volumeAdvancedDetails.setServiceInfo(prepareServiceInfo(statusInfo)); + GlusterVolumeSizeInfo capacityInfo = null; + + // Fetch the volume capacity detail + if (statusInfo.containsKey(VOLUME_STATUS_INFO)) { + Map<String, Object> volumeStatusInfo = (Map<String, Object>) statusInfo.get("volumeStatsInfo"); + capacityInfo = new GlusterVolumeSizeInfo(); + capacityInfo.setVolumeId(volume.getId()); + capacityInfo.setTotalSize(Long.valueOf((String) volumeStatusInfo.get(DETAIL_SIZE_TOTAL))); + capacityInfo.setUsedSize(Long.valueOf((String) volumeStatusInfo.get(DETAIL_SIZE_USED))); + capacityInfo.setFreeSize(Long.valueOf((String) volumeStatusInfo.get(DETAIL_SIZE_FREE))); + volumeAdvancedDetails.setCapacityInfo(capacityInfo); + } } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml index eb8e734..05e6623 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/resources/org/ovirt/engine/core/Common.gwt.xml @@ -289,6 +289,7 @@ <include name="common/businessentities/gluster/GlusterHookStatus.java"/> <include name="common/businessentities/gluster/GlusterHookContentType.java"/> <include name="common/businessentities/gluster/GlusterHookConflictFlags.java"/> + <include name="common/businessentities/gluster/GlusterVolumeSizeInfo.java"/> <include name="common/asynctasks/gluster/GlusterAsyncTask.java"/> <include name="common/asynctasks/gluster/GlusterTaskStatus.java"/> <include name="common/asynctasks/gluster/GlusterTaskType.java"/> -- To view, visit http://gerrit.ovirt.org/24444 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I126eb7057ee1cc9abb31c0a9579c48a5cccb8be0 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Ramesh N <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
