diff --git a/netbox_agent/lshw.py b/netbox_agent/lshw.py index e88993c..876df97 100644 --- a/netbox_agent/lshw.py +++ b/netbox_agent/lshw.py @@ -77,20 +77,20 @@ class LSHW(): # newer versions of lshw can return a list of names, see issue #227 if not isinstance(i["name"], list): if i["name"].startswith("unknown"): - unkn_intfs.push(i) + unkn_intfs.append(i) else: for j in i["name"]: if j.startswith("unknown"): - unkn_intfs.push(j) + unkn_intfs.append(j) unkn_name = "unknown{}".format(len(unkn_intfs)) self.interfaces.append({ "name": obj.get("logicalname", unkn_name), "macaddress": obj.get("serial", ""), "serial": obj.get("serial", ""), - "product": obj["product"], - "vendor": obj["vendor"], - "description": obj["description"], + "product": obj.get("product", "Unknown NIC"), + "vendor": obj.get("vendor", "Unknown"), + "description": obj.get("description", ""), }) def find_storage(self, obj): @@ -135,10 +135,10 @@ class LSHW(): def find_cpus(self, obj): if "product" in obj: self.cpus.append({ - "product": obj["product"], - "vendor": obj["vendor"], - "description": obj["description"], - "location": obj["slot"], + "product": obj.get("product", "Unknown CPU"), + "vendor": obj.get("vendor", "Unknown vendor"), + "description": obj.get("description", ""), + "location": obj.get("slot", ""), }) def find_memories(self, obj): @@ -162,11 +162,12 @@ class LSHW(): def find_gpus(self, obj): if "product" in obj: - self.gpus.append({ - "product": obj["product"], - "vendor": obj["vendor"], - "description": obj["description"], - }) + infos = { + "product": obj.get("product", "Unknown GPU"), + "vendor": obj.get("vendor", "Unknown"), + "description": obj.get("description", ""), + } + self.gpus.append(infos) def walk_bridge(self, obj): if "children" not in obj: