You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ap...@apache.org on 2015/06/19 05:56:12 UTC

git commit: updated refs/heads/4.5 to 04c7cf4

Repository: cloudstack
Updated Branches:
  refs/heads/4.5 259b2639f -> 04c7cf4e1


CLOUDSTACK-8570:Exception in calculating reserved capacity for dynamic service offering


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/04c7cf4e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/04c7cf4e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/04c7cf4e

Branch: refs/heads/4.5
Commit: 04c7cf4e15a24f3717223c42a5adafe14404d416
Parents: 259b263
Author: Abhinandan Prateek <ab...@shapeblue.com>
Authored: Fri Jun 19 09:24:56 2015 +0530
Committer: Abhinandan Prateek <ab...@shapeblue.com>
Committed: Fri Jun 19 09:24:56 2015 +0530

----------------------------------------------------------------------
 .../src/com/cloud/capacity/CapacityManagerImpl.java   | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/04c7cf4e/server/src/com/cloud/capacity/CapacityManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java
index f91a20a..4c715ae 100755
--- a/server/src/com/cloud/capacity/CapacityManagerImpl.java
+++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java
@@ -645,8 +645,18 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
                     ramOvercommitRatio = Float.parseFloat(vmDetailRam.getValue());
                 }
                 ServiceOffering so = offeringsMap.get(vm.getServiceOfferingId());
-                reservedMemory += ((so.getRamSize() * 1024L * 1024L) / ramOvercommitRatio) * clusterRamOvercommitRatio;
-                reservedCpu += (so.getCpu() * so.getSpeed() / cpuOvercommitRatio) * clusterCpuOvercommitRatio;
+                Map<String, String> vmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
+                if (so.isDynamic()) {
+                    reservedMemory +=
+                        ((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.memory.name())) * 1024L * 1024L) / ramOvercommitRatio) *
+                            clusterRamOvercommitRatio;
+                    reservedCpu +=
+                        ((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuSpeed.name()))) / cpuOvercommitRatio) *
+                            clusterCpuOvercommitRatio;
+                } else {
+                    reservedMemory += ((so.getRamSize() * 1024L * 1024L) / ramOvercommitRatio) * clusterRamOvercommitRatio;
+                    reservedCpu += (so.getCpu() * so.getSpeed() / cpuOvercommitRatio) * clusterCpuOvercommitRatio;
+                }
             } else {
                 // signal if not done already, that the VM has been stopped for skip.counting.hours,
                 // hence capacity will not be reserved anymore.