From 15b89a5cc35ee83bbf55294ef3676e20099c9f14 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 29 Nov 2010 12:55:22 -0500 Subject: [PATCH] domain: Don't pull memory/vcpu values from info(), use XML We already ensure the XML is up to date after any config change, so pull all config values from there. --- src/virtManager/domain.py | 48 +++++++++++++++------------------------ 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index 5a20cb75f..cf4127c67 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -116,20 +116,14 @@ class vmmDomainBase(vmmLibvirtObject): def status(self): raise NotImplementedError() - def get_memory(self): - raise NotImplementedError() def get_memory_percentage(self): raise NotImplementedError() - def maximum_memory(self): - raise NotImplementedError() def maximum_memory_percentage(self): raise NotImplementedError() def cpu_time(self): raise NotImplementedError() def cpu_time_percentage(self): raise NotImplementedError() - def vcpu_count(self): - raise NotImplementedError() def network_rx_rate(self): raise NotImplementedError() def network_tx_rate(self): @@ -246,11 +240,11 @@ class vmmDomainBase(vmmLibvirtObject): def define_vcpus(self, vcpus): def change(guest): - self._backend.vcpus = int(vcpus) + guest.vcpus = int(vcpus) return self._redefine_guest(change) def define_cpuset(self, cpuset): def change(guest): - self._backend.cpuset = cpuset + guest.cpuset = cpuset return self._redefine_guest(change) def define_both_mem(self, memory, maxmem): @@ -414,12 +408,14 @@ class vmmDomainBase(vmmLibvirtObject): def get_description(self): return vutil.get_xml_path(self.get_xml(), "/domain/description") - def vcpu_pinning(self): - cpuset = vutil.get_xml_path(self.get_xml(), "/domain/vcpu/@cpuset") - # We need to set it to empty string not to show None in the entry - if cpuset is None: - cpuset = "" - return cpuset + def get_memory(self): + return int(vutil.get_xml_path(self.get_xml(), "/domain/currentMemory")) + + def maximum_memory(self): + return int(vutil.get_xml_path(self.get_xml(), "/domain/memory")) + + def vcpu_count(self): + return int(vutil.get_xml_path(self.get_xml(), "/domain/vcpu")) def vcpu_max_count(self): if self._startup_vcpus == None: @@ -427,6 +423,13 @@ class vmmDomainBase(vmmLibvirtObject): "/domain/vcpu")) return int(self._startup_vcpus) + def vcpu_pinning(self): + cpuset = vutil.get_xml_path(self.get_xml(), "/domain/vcpu/@cpuset") + # We need to set it to empty string not to show None in the entry + if cpuset is None: + cpuset = "" + return cpuset + def get_boot_device(self): xml = self.get_xml() @@ -955,20 +958,14 @@ class vmmDomain(vmmDomainBase): return 0 return self.record[0][record_name] - def get_memory(self): - return self._get_record_helper("currMem") def get_memory_percentage(self): return self._get_record_helper("currMemPercent") - def maximum_memory(self): - return self._get_record_helper("maxMem") def maximum_memory_percentage(self): return self._get_record_helper("maxMemPercent") def cpu_time(self): return self._get_record_helper("cpuTime") def cpu_time_percentage(self): return self._get_record_helper("cpuTimePercent") - def vcpu_count(self): - return self._get_record_helper("vcpuCount") def network_rx_rate(self): return self._get_record_helper("netRxRate") def network_tx_rate(self): @@ -1266,10 +1263,7 @@ class vmmDomain(vmmDomainBase): "cpuTime": cpuTime, "cpuTimeAbs": cpuTimeAbs, "cpuTimePercent": pcentCpuTime, - "currMem": info[2], "currMemPercent": pcentCurrMem, - "vcpuCount": info[3], - "maxMem": info[1], "maxMemPercent": pcentMaxMem, "diskRdKB": rdBytes / 1024, "diskWrKB": wrBytes / 1024, @@ -1354,20 +1348,15 @@ class vmmDomainVirtinst(vmmDomainBase): def get_autostart(self): return self._backend.autostart - def get_memory(self): - return int(self._backend.memory * 1024.0) + # Stats stubs def get_memory_percentage(self): return 0 - def maximum_memory(self): - return int(self._backend.maxmemory * 1024.0) def maximum_memory_percentage(self): return 0 def cpu_time(self): return 0 def cpu_time_percentage(self): return 0 - def vcpu_count(self): - return self._backend.vcpus def network_rx_rate(self): return 0 def network_tx_rate(self): @@ -1377,7 +1366,6 @@ class vmmDomainVirtinst(vmmDomainBase): def disk_write_rate(self): return 0 - # Device/XML hotplug implementations def set_autostart(self, val): self._backend.autostart = bool(val)