Add support for psutil v1 as well as v2
Openstack global requirements updated to specify version 1 only, and we only supported version 2. Change-Id: Iee97e4b14cae00238028ef936d2f96fbc8e2604c
This commit is contained in:
@@ -193,6 +193,14 @@ class GenericHardwareManager(HardwareManager):
|
||||
for name in iface_names
|
||||
if self._is_device(name)]
|
||||
|
||||
def _get_cpu_count(self):
|
||||
if psutil.version_info[0] == 1:
|
||||
return psutil.NUM_CPUS
|
||||
elif psutil.version_info[0] == 2:
|
||||
return psutil.cpu_count()
|
||||
else:
|
||||
raise AttributeError("Only psutil versions 1 and 2 supported")
|
||||
|
||||
def get_cpus(self):
|
||||
model = None
|
||||
freq = None
|
||||
@@ -206,11 +214,14 @@ class GenericHardwareManager(HardwareManager):
|
||||
if not freq and line.startswith('cpu MHz'):
|
||||
freq = line.split(':')[1].strip()
|
||||
|
||||
return CPU(model, freq, psutil.cpu_count())
|
||||
return CPU(model, freq, self._get_cpu_count())
|
||||
|
||||
def get_memory(self):
|
||||
# psutil returns a long, force it to an int
|
||||
return Memory(int(psutil.phymem_usage().total))
|
||||
# psutil returns a long, so we force it to an int
|
||||
if psutil.version_info[0] == 1:
|
||||
return Memory(int(psutil.TOTAL_PHYMEM))
|
||||
elif psutil.version_info[0] == 2:
|
||||
return Memory(int(psutil.phymem_usage().total))
|
||||
|
||||
def list_block_devices(self):
|
||||
"""List all physical block devices
|
||||
|
||||
@@ -26,7 +26,6 @@ if six.PY2:
|
||||
else:
|
||||
OPEN_FUNCTION_NAME = 'builtins.open'
|
||||
|
||||
|
||||
HDPARM_INFO_TEMPLATE = (
|
||||
'/dev/sda:\n'
|
||||
'\n'
|
||||
@@ -200,7 +199,8 @@ class TestGenericHardwareManager(test_base.BaseTestCase):
|
||||
mocked_execute.assert_called_once_with(
|
||||
'lsblk', '-PbdioKNAME,MODEL,SIZE,ROTA,TYPE', check_exit_code=[0])
|
||||
|
||||
@mock.patch('psutil.cpu_count')
|
||||
@mock.patch('ironic_python_agent.hardware.GenericHardwareManager.'
|
||||
'_get_cpu_count')
|
||||
@mock.patch(OPEN_FUNCTION_NAME)
|
||||
def test_get_cpus(self, mocked_open, mocked_cpucount):
|
||||
mocked_open.return_value.__enter__ = lambda s: s
|
||||
|
||||
Reference in New Issue
Block a user