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 6f16462f4f3..597cc1ca446 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 @@ -190,10 +190,9 @@ public class HostJoinDaoImpl extends GenericDaoBase implements 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)) { @@ -317,7 +316,7 @@ public class HostJoinDaoImpl extends GenericDaoBase implements 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()); @@ -340,10 +339,9 @@ public class HostJoinDaoImpl extends GenericDaoBase implements 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() + "%"; - 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)) { @@ -471,4 +469,9 @@ public class HostJoinDaoImpl extends GenericDaoBase implements return listBy(sc); } + private String calculateResourceAllocatedPercentage(float resource, float resourceWithOverProvision) { + DecimalFormat decimalFormat = new DecimalFormat("#.##"); + return decimalFormat.format(((float)resource / resourceWithOverProvision * 100.0f)) + "%"; + } + }