summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJose M. Guisado <jguisado@soleta.eu>2023-10-18 13:05:39 +0200
committerJose M. Guisado <jguisado@soleta.eu>2023-10-18 13:32:24 +0200
commitb49ec83bcde10ca6e0066ef5f01b636e11cb4d25 (patch)
treed35757d0530a01e35a5eebbe88d2c86fe5bf3b67
parent59eac6d0d548b0c855d302f86558f94000a83a0d (diff)
live: hw_inventory: fix empty pci storage size bug
When a client's hardware presents an empty pci storage child there is an invalid call to _bytes_to_human a string is supplied as a default value if the storage child does not present a 'size' attribute. Fix this by checking if 'size' is present in the JSON output from lshw. If size is present then map the bytes to a human readable string using _bytes_to_human, if no size is present then use 'Empty slot' to indicate that the memory bank is not being used.
-rw-r--r--src/utils/hw_inventory.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/utils/hw_inventory.py b/src/utils/hw_inventory.py
index dff1c7a..23c8765 100644
--- a/src/utils/hw_inventory.py
+++ b/src/utils/hw_inventory.py
@@ -151,7 +151,7 @@ def _process_core_pci_network(inventory, obj):
def _process_core_pci_storage_child(inventory, obj):
obj_id = obj.get('id', '')
if obj_id.startswith('disk') or obj_id.startswith('nvme'):
- size = _bytes_to_human(obj.get('size', 'Unknown size'))
+ size = _bytes_to_human(obj['size']) if 'size' in obj else 'Unknown size'
name = ' '.join([obj.get('description', ''), obj.get('product', 'Unknown product'), size])
elem = HardwareElement(HardwareType.DISK, name)
inventory.add_element(elem)