[Kimchi-devel] [PATCH] Improve code to retrieve the number of host CPUs
Jose Ricardo Ziviani
joserz at linux.vnet.ibm.com
Tue Apr 28 00:50:33 UTC 2015
- Retrieving the number of cpus using psinfo is unstable, there
are three (at least) different ways to do it that changes from
version to version. This code improves the way such functions
are called to avoid any surprise in future.
Signed-off-by: Jose Ricardo Ziviani <joserz at linux.vnet.ibm.com>
---
src/kimchi/model/host.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/kimchi/model/host.py b/src/kimchi/model/host.py
index 293c4ce..b2fa379 100644
--- a/src/kimchi/model/host.py
+++ b/src/kimchi/model/host.py
@@ -102,15 +102,20 @@ class HostModel(object):
return res
def lookup(self, *name):
- cpus = 0
+ cpus = psutil.NUM_CPUS
- # Only newer psutil versions have a portable method to get
- # the number of cpus
- try:
+ # psutil is unstable on how to get the number of
+ # cpus, different versions call it differently
+ if hasattr(psutil, 'cpu_count'):
cpus = psutil.cpu_count()
- except AttributeError:
- cpus = psutil._psplatform.get_num_cpus()
+ elif hasattr(psutil, '_psplatform'):
+ for method_name in ['_get_num_cpus', 'get_num_cpus']:
+
+ method = getattr(psutil._psplatform, method_name, None)
+ if method is not None:
+ cpus = method()
+ break
self.host_info['cpus'] = cpus
self.host_info['memory'] = psutil.phymem_usage().total
--
1.9.1
More information about the Kimchi-devel
mailing list