Skip to content

Commit e4919e0

Browse files
committed
Support psutil 5.0.1
An upper-constraints update to psutil caused IPA to start using psutil 5.0.1. We had a hard-coded assumption that psutil would be major version 1 or 2. This allows us to use the updated psutil and attempts to simply fail gracefully if an unrecognized psutil version is used. Change-Id: Ibe072440159561b34a29b478d955876e5fb7f103 Closes-Bug: 1659137
1 parent 4483282 commit e4919e0

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

ironic_python_agent/hardware.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,12 @@ def get_memory(self):
598598
total = int(psutil.TOTAL_PHYMEM)
599599
elif psutil.version_info[0] == 2:
600600
total = int(psutil.phymem_usage().total)
601+
elif psutil.version_info[0] == 5:
602+
total = int(psutil.virtual_memory().total)
603+
else:
604+
total = None
605+
LOG.warning("Cannot fetch total memory size: unsupported psutil "
606+
"version %s", psutil.version_info[0])
601607

602608
try:
603609
out, _e = utils.execute("dmidecode --type 17 | grep Size",

ironic_python_agent/tests/unit/test_hardware.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -728,11 +728,11 @@ def test_get_cpus_illegal_flags(self, mocked_execute):
728728
self.assertEqual('x86_64', cpus.architecture)
729729
self.assertEqual([], cpus.flags)
730730

731-
@mock.patch('psutil.version_info', (2, 0))
732-
@mock.patch('psutil.phymem_usage', autospec=True)
731+
@mock.patch('psutil.version_info', (5, 0))
732+
@mock.patch('psutil.virtual_memory', autospec=True)
733733
@mock.patch.object(utils, 'execute')
734-
def test_get_memory(self, mocked_execute, mocked_usage):
735-
mocked_usage.return_value = mock.Mock(total=3952 * 1024 * 1024)
734+
def test_get_memory(self, mocked_execute, mocked_virtmem):
735+
mocked_virtmem.return_value.total = 3952 * 1024 * 1024
736736
mocked_execute.return_value = (
737737
("Foo\nSize: 2048 MB\nSize: 2 GB\n"
738738
"Installed Size: Not Installed\n"

0 commit comments

Comments
 (0)