diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-01-27 02:16:04 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-01-27 02:16:04 +0000 |
commit | d5e90ff2d63d34653845e1d3db024c0b327f42a3 (patch) | |
tree | 1be710045cdc2951d5aa0bfce28d57222427e3fd | |
parent | 7ec1f254751e2953ffd1cb132a3a661a4440ed8c (diff) | |
parent | b7ae4995a751084c200a33367df57c09c61bc439 (diff) | |
download | ironic-python-agent-d5e90ff2d63d34653845e1d3db024c0b327f42a3.tar.gz |
Merge "Remove support for older psutil versions"
-rw-r--r-- | ironic_python_agent/hardware.py | 12 | ||||
-rw-r--r-- | ironic_python_agent/tests/unit/test_hardware.py | 35 |
2 files changed, 27 insertions, 20 deletions
diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py index 7fd4ee5a..68d738f0 100644 --- a/ironic_python_agent/hardware.py +++ b/ironic_python_agent/hardware.py @@ -594,16 +594,12 @@ class GenericHardwareManager(HardwareManager): def get_memory(self): # psutil returns a long, so we force it to an int - if psutil.version_info[0] == 1: - total = int(psutil.TOTAL_PHYMEM) - elif psutil.version_info[0] == 2: - total = int(psutil.phymem_usage().total) - elif psutil.version_info[0] == 5: + try: total = int(psutil.virtual_memory().total) - else: + except Exception: total = None - LOG.warning("Cannot fetch total memory size: unsupported psutil " - "version %s", psutil.version_info[0]) + LOG.exception(("Cannot fetch total memory size using psutil " + "version %s"), psutil.version_info[0]) try: out, _e = utils.execute("dmidecode --type 17 | grep Size", diff --git a/ironic_python_agent/tests/unit/test_hardware.py b/ironic_python_agent/tests/unit/test_hardware.py index db87b5f3..e7b8ed4c 100644 --- a/ironic_python_agent/tests/unit/test_hardware.py +++ b/ironic_python_agent/tests/unit/test_hardware.py @@ -239,6 +239,15 @@ CPUINFO_FLAGS_OUTPUT = """ flags : fpu vme de pse """ +DMIDECODE_MEMORY_OUTPUT = (""" +Foo +Size: 2048 MB +Size: 2 GB +Installed Size: Not Installed +Enabled Size: Not Installed +Size: No Module Installed +""", "") + class FakeHardwareManager(hardware.GenericHardwareManager): def __init__(self, hardware_support): @@ -728,24 +737,26 @@ class TestGenericHardwareManager(test_base.BaseTestCase): self.assertEqual('x86_64', cpus.architecture) self.assertEqual([], cpus.flags) - @mock.patch('psutil.version_info', (5, 0)) @mock.patch('psutil.virtual_memory', autospec=True) - @mock.patch.object(utils, 'execute') - def test_get_memory(self, mocked_execute, mocked_virtmem): - mocked_virtmem.return_value.total = 3952 * 1024 * 1024 - mocked_execute.return_value = ( - ("Foo\nSize: 2048 MB\nSize: 2 GB\n" - "Installed Size: Not Installed\n" - "Enabled Size: Not Installed\n" - "Size: No Module Installed\n"), - "" - ) - + @mock.patch.object(utils, 'execute', autospec=True) + def test_get_memory_psutil(self, mocked_execute, mocked_psutil): + mocked_psutil.return_value.total = 3952 * 1024 * 1024 + mocked_execute.return_value = DMIDECODE_MEMORY_OUTPUT mem = self.hardware.get_memory() self.assertEqual(3952 * 1024 * 1024, mem.total) self.assertEqual(4096, mem.physical_mb) + @mock.patch('psutil.virtual_memory', autospec=True) + @mock.patch.object(utils, 'execute', autospec=True) + def test_get_memory_psutil_exception(self, mocked_execute, mocked_psutil): + mocked_execute.return_value = DMIDECODE_MEMORY_OUTPUT + mocked_psutil.side_effect = AttributeError() + mem = self.hardware.get_memory() + + self.assertIsNone(mem.total) + self.assertEqual(4096, mem.physical_mb) + def test_list_hardware_info(self): self.hardware.list_network_interfaces = mock.Mock() self.hardware.list_network_interfaces.return_value = [ |