mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	Bug fix for CLOUDSTACK-9762 Management Server UI (VM statistics page) CPU Utilized value is incorrect.
(cherry picked from commit b676a8a7c3fd554d87afdac6328d9ac5d0265308) Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
		
							parent
							
								
									ba60718585
								
							
						
					
					
						commit
						05f94b8ef7
					
				@ -5073,21 +5073,23 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
 | 
			
		||||
        final String guestMemUseStr = "summary.quickStats.guestMemoryUsage";
 | 
			
		||||
        final String memLimitStr = "resourceConfig.memoryAllocation.limit";
 | 
			
		||||
        final String memMbStr = "config.hardware.memoryMB";
 | 
			
		||||
        final String allocatedCpuStr = "summary.runtime.maxCpuUsage";
 | 
			
		||||
 | 
			
		||||
        ObjectContent[] ocs =
 | 
			
		||||
                hyperHost.getVmPropertiesOnHyperHost(new String[] {"name", numCpuStr, cpuUseStr ,guestMemUseStr ,memLimitStr ,memMbStr, instanceNameCustomField});
 | 
			
		||||
                hyperHost.getVmPropertiesOnHyperHost(new String[] {"name", numCpuStr, cpuUseStr ,guestMemUseStr ,memLimitStr ,memMbStr,allocatedCpuStr ,instanceNameCustomField});
 | 
			
		||||
        if (ocs != null && ocs.length > 0) {
 | 
			
		||||
            for (ObjectContent oc : ocs) {
 | 
			
		||||
                List<DynamicProperty> objProps = oc.getPropSet();
 | 
			
		||||
                if (objProps != null) {
 | 
			
		||||
                    String name = null;
 | 
			
		||||
                    String numberCPUs = null;
 | 
			
		||||
                    String maxCpuUsage = null;
 | 
			
		||||
                    double maxCpuUsage = 0;
 | 
			
		||||
                    String memlimit = null;
 | 
			
		||||
                    String memkb = null;
 | 
			
		||||
                    String guestMemusage = null;
 | 
			
		||||
                    String vmNameOnVcenter = null;
 | 
			
		||||
                    String vmInternalCSName = null;
 | 
			
		||||
                    double allocatedCpu = 0;
 | 
			
		||||
                    for (DynamicProperty objProp : objProps) {
 | 
			
		||||
                        if (objProp.getName().equals("name")) {
 | 
			
		||||
                            vmNameOnVcenter = objProp.getVal().toString();
 | 
			
		||||
@ -5099,13 +5101,17 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
 | 
			
		||||
                        }else if (objProp.getName().equals(numCpuStr)) {
 | 
			
		||||
                            numberCPUs = objProp.getVal().toString();
 | 
			
		||||
                        } else if (objProp.getName().equals(cpuUseStr)) {
 | 
			
		||||
                            maxCpuUsage = objProp.getVal().toString();
 | 
			
		||||
                            maxCpuUsage = NumberUtils.toDouble(objProp.getVal().toString());
 | 
			
		||||
                        } else if (objProp.getName().equals(memLimitStr)) {
 | 
			
		||||
                            memlimit = objProp.getVal().toString();
 | 
			
		||||
                        } else if (objProp.getName().equals(memMbStr)) {
 | 
			
		||||
                            memkb = objProp.getVal().toString();
 | 
			
		||||
                        } else if (objProp.getName().equals(allocatedCpuStr)){
 | 
			
		||||
                            allocatedCpu  = NumberUtils.toDouble(objProp.getVal().toString());
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    maxCpuUsage = (maxCpuUsage/allocatedCpu)*100;
 | 
			
		||||
                    new VirtualMachineMO(hyperHost.getContext(), oc.getObj());
 | 
			
		||||
                    if (vmInternalCSName != null) {
 | 
			
		||||
                        name = vmInternalCSName;
 | 
			
		||||
@ -5172,7 +5178,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    vmResponseMap.put(name, new VmStatsEntry( NumberUtils.toDouble(memkb)*1024,NumberUtils.toDouble(guestMemusage)*1024,NumberUtils.toDouble(memlimit)*1024, NumberUtils.toDouble(maxCpuUsage), networkReadKBs, networkWriteKBs, NumberUtils.toInt(numberCPUs), "vm"));
 | 
			
		||||
                    vmResponseMap.put(name, new VmStatsEntry( NumberUtils.toDouble(memkb)*1024,NumberUtils.toDouble(guestMemusage)*1024,NumberUtils.toDouble(memlimit)*1024, maxCpuUsage, networkReadKBs, networkWriteKBs, NumberUtils.toInt(numberCPUs), "vm"));
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user