From 9500dfa627be8efea0ab96bf6691801c8a56b2e4 Mon Sep 17 00:00:00 2001 From: Rakesh Venkatesh Date: Wed, 22 Jul 2020 11:59:05 +0200 Subject: [PATCH 1/2] Fix cpuallocated value in findHostsForMIgration api The findHostsForMigration api displays 0% always for cpuallocated field which is wrong --- .../java/com/cloud/api/query/dao/HostJoinDaoImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java index ff5d254e9b73..7265318631d7 100644 --- a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java @@ -307,7 +307,7 @@ public HostForMigrationResponse newHostForMigrationResponse(HostJoinVO host, Enu if (details.contains(HostDetails.all) || details.contains(HostDetails.capacity)) { // set allocated capacities Long mem = host.getMemReservedCapacity() + host.getMemUsedCapacity(); - Long cpu = host.getCpuReservedCapacity() + host.getCpuReservedCapacity(); + Long cpu = host.getCpuReservedCapacity() + host.getCpuUsedCapacity(); hostResponse.setMemoryTotal(host.getTotalMemory()); Float memWithOverprovisioning = host.getTotalMemory() * ApiDBUtils.getMemOverprovisioningFactor(host.getClusterId()); @@ -330,10 +330,10 @@ public HostForMigrationResponse newHostForMigrationResponse(HostJoinVO host, Enu hostResponse.setHypervisorVersion(host.getHypervisorVersion()); - Float cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId())); - String cpuAlloc = decimalFormat.format(((float)cpu / cpuWithOverprovisioning * 100f)).toString() + "%"; + float cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId())); + String cpuAlloc = decimalFormat.format(((float)cpu / cpuWithOverprovisioning * 100f)) + "%"; hostResponse.setCpuAllocated(cpuAlloc); - hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning.toString()); + hostResponse.setCpuWithOverprovisioning(Float.toString(cpuWithOverprovisioning)); } if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) { From 7febf17aa8c8ba6403deeb160a4af5f6dda5111c Mon Sep 17 00:00:00 2001 From: Rakesh Venkatesh Date: Thu, 23 Jul 2020 10:19:31 +0200 Subject: [PATCH 2/2] Extract to function --- .../cloud/api/query/dao/HostJoinDaoImpl.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java index 7265318631d7..d9d392f6e473 100644 --- a/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java +++ b/server/src/main/java/com/cloud/api/query/dao/HostJoinDaoImpl.java @@ -180,10 +180,9 @@ public HostResponse newHostResponse(HostJoinVO host, EnumSet detail hostResponse.setHypervisorVersion(host.getHypervisorVersion()); - Float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()); - String cpuAlloc = decimalFormat.format(((float)cpu / cpuWithOverprovisioning * 100f)) + "%"; - hostResponse.setCpuAllocated(cpuAlloc); - hostResponse.setCpuWithOverprovisioning(cpuWithOverprovisioning.toString()); + float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()); + hostResponse.setCpuAllocated(calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning)); + hostResponse.setCpuWithOverprovisioning(Float.toString(cpuWithOverprovisioning)); } if (details.contains(HostDetails.all) || details.contains(HostDetails.stats)) { @@ -330,9 +329,8 @@ public HostForMigrationResponse newHostForMigrationResponse(HostJoinVO host, Enu hostResponse.setHypervisorVersion(host.getHypervisorVersion()); - float cpuWithOverprovisioning = new Float(host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId())); - String cpuAlloc = decimalFormat.format(((float)cpu / cpuWithOverprovisioning * 100f)) + "%"; - hostResponse.setCpuAllocated(cpuAlloc); + float cpuWithOverprovisioning = host.getCpus() * host.getSpeed() * ApiDBUtils.getCpuOverprovisioningFactor(host.getClusterId()); + hostResponse.setCpuAllocated(calculateResourceAllocatedPercentage(cpu, cpuWithOverprovisioning)); hostResponse.setCpuWithOverprovisioning(Float.toString(cpuWithOverprovisioning)); } @@ -461,4 +459,9 @@ public List findByClusterId(Long clusterId, Host.Type type) { return listBy(sc); } + private String calculateResourceAllocatedPercentage(float resource, float resourceWithOverProvision) { + DecimalFormat decimalFormat = new DecimalFormat("#.##"); + return decimalFormat.format(((float)resource / resourceWithOverProvision * 100.0f)) + "%"; + } + }