Collect processor, memory and BIOS output of dmidecode - follow-up
Fixes nits, modifies unit tests. This is a follow-up to commit c5544fb7a0d9d2a1481b3256c3587259368b599e. Change-Id: Ibca82cc6e32311b1ff0be7137d8392f63e12639b Closes-Bug: #1635057
This commit is contained in:
parent
e626cd744f
commit
3ab779c897
ironic_python_agent
@ -40,7 +40,7 @@ def collect_dmidecode_info(data, failures):
|
|||||||
try:
|
try:
|
||||||
data['dmi'] = parse_dmi(shret)
|
data['dmi'] = parse_dmi(shret)
|
||||||
except (ValueError, IndexError) as exc:
|
except (ValueError, IndexError) as exc:
|
||||||
LOG.warning('Failed to collect dmidecode info %s:', exc)
|
LOG.warning('Failed to collect dmidecode info: %s', exc)
|
||||||
|
|
||||||
|
|
||||||
def parse_dmi(data):
|
def parse_dmi(data):
|
||||||
@ -69,7 +69,9 @@ def parse_dmi(data):
|
|||||||
if not len(infoblock):
|
if not len(infoblock):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if infoblock.startswith('Handle 0x'):
|
if not infoblock.startswith('Handle 0x'):
|
||||||
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Determine DMI type value. Handle line will look like this:
|
# Determine DMI type value. Handle line will look like this:
|
||||||
# Handle 0x0018, DMI type 17, 27 bytes
|
# Handle 0x0018, DMI type 17, 27 bytes
|
||||||
@ -124,7 +126,7 @@ def _save_data(dmi_info, memorydata, devicedata):
|
|||||||
dmi_info['memory'] = memorydata[0]
|
dmi_info['memory'] = memorydata[0]
|
||||||
dmi_info['memory']['Number Of Devices'] = device_count
|
dmi_info['memory']['Number Of Devices'] = device_count
|
||||||
dmi_info['memory'].pop('Handle')
|
dmi_info['memory'].pop('Handle')
|
||||||
except (KeyError) as exc:
|
except KeyError as exc:
|
||||||
LOG.warning('Failed to process memory dmi data: %s', exc)
|
LOG.warning('Failed to process memory dmi data: %s', exc)
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
@ -668,12 +668,26 @@ class TestCollectDmidecodeInfo(base.IronicAgentTest):
|
|||||||
ret = dmi_inspector._save_data(dmi_info, mem, devices)
|
ret = dmi_inspector._save_data(dmi_info, mem, devices)
|
||||||
self.assertEqual(expected, ret)
|
self.assertEqual(expected, ret)
|
||||||
|
|
||||||
|
def test_save_data_error_number_of_devices(self):
|
||||||
|
dmi_info = {}
|
||||||
|
dmi_info['bios'] = {}
|
||||||
|
dmi_info['cpu'] = []
|
||||||
|
dmi_info['memory'] = {}
|
||||||
|
dmi_info['memory']['devices'] = {}
|
||||||
|
|
||||||
self.assertRaises(KeyError,
|
self.assertRaises(KeyError,
|
||||||
dmi_inspector._save_data,
|
dmi_inspector._save_data,
|
||||||
dmi_info,
|
dmi_info,
|
||||||
[{'foo': 'bar', 'Handle': '0x10'}],
|
[{'foo': 'bar', 'Handle': '0x10'}],
|
||||||
[{'bar': 'foo'}, {'bar': 'foo'}])
|
[{'bar': 'foo'}, {'bar': 'foo'}])
|
||||||
|
|
||||||
|
def test_save_data_error_handle(self):
|
||||||
|
dmi_info = {}
|
||||||
|
dmi_info['bios'] = {}
|
||||||
|
dmi_info['cpu'] = []
|
||||||
|
dmi_info['memory'] = {}
|
||||||
|
dmi_info['memory']['devices'] = {}
|
||||||
|
|
||||||
self.assertRaises(KeyError,
|
self.assertRaises(KeyError,
|
||||||
dmi_inspector._save_data,
|
dmi_inspector._save_data,
|
||||||
dmi_info,
|
dmi_info,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user