diff options
| author | Zuul <zuul@review.opendev.org> | 2019-05-30 21:50:29 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2019-05-30 21:50:29 +0000 |
| commit | 78ba0d1c30776607c1563bae847c062622ff12b7 (patch) | |
| tree | 589faf349b570e0b1300bbade96596231381cb9d /ironic_python_agent/hardware.py | |
| parent | 4f03661f6878c1e5103683fa496202b166b3cf08 (diff) | |
| parent | 8fc63adaf87d76928530efa95864d519f827a297 (diff) | |
| download | ironic-python-agent-3.3.2.tar.gz | |
Merge "Ironic python agent does not extract correct available memory" into stable/rocky3.3.2
Diffstat (limited to 'ironic_python_agent/hardware.py')
| -rw-r--r-- | ironic_python_agent/hardware.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/ironic_python_agent/hardware.py b/ironic_python_agent/hardware.py index 95078da6..87f05f9c 100644 --- a/ironic_python_agent/hardware.py +++ b/ironic_python_agent/hardware.py @@ -17,6 +17,7 @@ import binascii import functools import json import os +import re import shlex import time @@ -46,7 +47,7 @@ WARN_BIOSDEVNAME_NOT_FOUND = False UNIT_CONVERTER = pint.UnitRegistry(filename=None) UNIT_CONVERTER.define('bytes = []') UNIT_CONVERTER.define('MB = 1048576 bytes') - +_MEMORY_ID_RE = re.compile(r'^memory(:\d+)?$') NODE = None @@ -706,11 +707,13 @@ class GenericHardwareManager(HardwareManager): for sys_child in sys_dict['children']: if sys_child['id'] == 'core': for core_child in sys_child['children']: - if core_child['id'] == 'memory': - if core_child.get('size'): - value = "%(size)s %(units)s" % core_child - physical += int(UNIT_CONVERTER(value).to( - 'MB').magnitude) + if _MEMORY_ID_RE.match(core_child['id']): + for bank in core_child.get('children', ()): + if bank.get('size'): + value = ("%(size)s %(units)s" % bank) + physical += int(UNIT_CONVERTER(value).to + ('MB').magnitude) + if not physical: LOG.warning('Did not find any physical RAM') |
