Skip to content

Commit 2b89dfc

Browse files
committed
server: fix capacity computaion for constrained offering VM
VM deployed using constrained service offering won't be having CPU speed in the details therefore CPU speed for such VMs need to be retrieved from offering itself. This change adds check for the same. Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
1 parent ee95f45 commit 2b89dfc

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

server/src/main/java/com/cloud/capacity/CapacityManagerImpl.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -612,9 +612,15 @@ public void updateCapacityForHost(final Host host) {
612612
usedMemory +=
613613
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.memory.name())) * 1024L * 1024L) / ramOvercommitRatio) *
614614
clusterRamOvercommitRatio;
615-
usedCpu +=
616-
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuSpeed.name()))) / cpuOvercommitRatio) *
617-
clusterCpuOvercommitRatio;
615+
if(vmDetails.containsKey(UsageEventVO.DynamicParameters.cpuSpeed.name())) {
616+
usedCpu +=
617+
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuSpeed.name()))) / cpuOvercommitRatio) *
618+
clusterCpuOvercommitRatio;
619+
} else {
620+
usedCpu +=
621+
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * so.getSpeed()) / cpuOvercommitRatio) *
622+
clusterCpuOvercommitRatio;
623+
}
618624
usedCpuCore += Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name()));
619625
} else {
620626
usedMemory += ((so.getRamSize() * 1024L * 1024L) / ramOvercommitRatio) * clusterRamOvercommitRatio;
@@ -645,9 +651,15 @@ public void updateCapacityForHost(final Host host) {
645651
reservedMemory +=
646652
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.memory.name())) * 1024L * 1024L) / ramOvercommitRatio) *
647653
clusterRamOvercommitRatio;
648-
reservedCpu +=
649-
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuSpeed.name()))) / cpuOvercommitRatio) *
650-
clusterCpuOvercommitRatio;
654+
if(vmDetails.containsKey(UsageEventVO.DynamicParameters.cpuSpeed.name())) {
655+
reservedCpu +=
656+
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuSpeed.name()))) / cpuOvercommitRatio) *
657+
clusterCpuOvercommitRatio;
658+
} else {
659+
reservedCpu +=
660+
((Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name())) * so.getSpeed()) / cpuOvercommitRatio) *
661+
clusterCpuOvercommitRatio;
662+
}
651663
reservedCpuCore += Integer.parseInt(vmDetails.get(UsageEventVO.DynamicParameters.cpuNumber.name()));
652664
} else {
653665
reservedMemory += ((so.getRamSize() * 1024L * 1024L) / ramOvercommitRatio) * clusterRamOvercommitRatio;

0 commit comments

Comments
 (0)