This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.14
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.14 by this push:
     new a529470  server: Fix cpuallocated value in findHostsForMIgration api 
(#4220)
a529470 is described below

commit a529470b16642b77a39a42da6bbc827a3bf08951
Author: Rakesh <[email protected]>
AuthorDate: Wed Aug 5 10:32:09 2020 +0200

    server: Fix cpuallocated value in findHostsForMIgration api (#4220)
    
    The findHostsForMigration api displays 0% always for
    cpuallocated field which is wrong.
    
    Fixes #4221
---
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java    | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 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 6f16462..597cc1c 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<HostJoinVO, Long> 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<HostJoinVO, Long> 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<HostJoinVO, Long> 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<HostJoinVO, Long> implements
         return listBy(sc);
     }
 
+    private String calculateResourceAllocatedPercentage(float resource, float 
resourceWithOverProvision) {
+        DecimalFormat decimalFormat = new DecimalFormat("#.##");
+        return decimalFormat.format(((float)resource / 
resourceWithOverProvision * 100.0f)) + "%";
+    }
+
 }

Reply via email to