From 2fce8b733e19f37af990a6d21450c1a43a4c5bbd Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 5 Aug 2020 14:01:16 +0530 Subject: [PATCH] vmware: volume utilisation is always zero (#4225) This fixes issues of virtual size to be twice in case the disk is a linked-clone root disk. The virtual size of root disk (first in chain) must be used. Signed-off-by: Rohit Yadav --- .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 1 - .../src/main/java/com/cloud/api/query/ViewResponseHelper.java | 2 +- .../main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index fab6f0ad938..341e18cdc5d 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -3766,7 +3766,6 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa VolumeStatsEntry vse = statEntry.get(chainInfo); if (vse != null) { vse.setPhysicalSize(vse.getPhysicalSize() + physicalsize); - vse.setVirtualSize(vse.getVirtualSize() + virtualsize); } } else { VolumeStatsEntry vse = new VolumeStatsEntry(chainInfo, physicalsize, virtualsize); diff --git a/server/src/main/java/com/cloud/api/query/ViewResponseHelper.java b/server/src/main/java/com/cloud/api/query/ViewResponseHelper.java index ced81a6e06c..4baf25cfca3 100644 --- a/server/src/main/java/com/cloud/api/query/ViewResponseHelper.java +++ b/server/src/main/java/com/cloud/api/query/ViewResponseHelper.java @@ -268,7 +268,7 @@ public class ViewResponseHelper { public static List createVolumeResponse(ResponseView view, VolumeJoinVO... volumes) { Hashtable vrDataList = new Hashtable(); - DecimalFormat df = new DecimalFormat("0.00"); + DecimalFormat df = new DecimalFormat("0.0%"); for (VolumeJoinVO vr : volumes) { VolumeResponse vrData = vrDataList.get(vr.getId()); if (vrData == null) { diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java index fa0c380eb06..fd9a374bef0 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java @@ -356,6 +356,7 @@ public class DatastoreMO extends BaseMO { FileQueryFlags fqf = new FileQueryFlags(); fqf.setFileSize(true); fqf.setFileOwner(true); + fqf.setFileType(true); fqf.setModification(true); searchSpec.setDetails(fqf); searchSpec.setSearchCaseInsensitive(false);