fix parse for get better the mac in inxi file

Refactor of parsing of network cards for get better the info
This commit is contained in:
Cayo Puigdefabregas 2025-02-20 17:28:07 +01:00
parent 509c54e5d8
commit c35c3fcdbc
4 changed files with 24 additions and 16 deletions

View file

@ -38,7 +38,6 @@ class BuildMix:
self.algorithms[k] = self.get_hid(k) self.algorithms[k] = self.get_hid(k)
def get_doc(self): def get_doc(self):
self._get_components() self._get_components()

View file

@ -10,9 +10,14 @@ logger = logging.getLogger('django')
def get_mac(inxi): def get_mac(inxi):
nets = get_inxi_key(inxi, "Network") nets = get_inxi_key(inxi, "Network")
networks = [(nets[i], nets[i + 1]) for i in range(0, len(nets) - 1, 2)] n_nets = len(nets) - 1
for n, iface in networks: for i in range(0, n_nets):
if i + 1 > n_nets:
break
n = nets[i]
iface = nets[i + 1]
if get_inxi(n, "port"): if get_inxi(n, "port"):
return get_inxi(iface, 'mac') return get_inxi(iface, 'mac')

View file

@ -282,9 +282,8 @@ class ParseSnapshot:
def get_networks(self): def get_networks(self):
nets = get_inxi_key(self.inxi, "Network") or [] nets = get_inxi_key(self.inxi, "Network") or []
networks = [(nets[i], nets[i + 1]) for i in range(0, len(nets) - 1, 2)] for i in range(0, len(nets)-1):
n = nets[i]
for n, iface in networks:
model = get_inxi(n, "Device") model = get_inxi(n, "Device")
if not model: if not model:
continue continue
@ -298,20 +297,25 @@ class ParseSnapshot:
if get_inxi(n, "type") == "USB": if get_inxi(n, "type") == "USB":
interface = "USB" interface = "USB"
speed = get_inxi(iface, "speed") manufacturer = get_inxi(n, "manufacturer")
if not speed: speed = get_inxi(n, "speed")
speed = get_inxi(n, "speed") mac = ""
self.components.append( if len(nets) > i+1:
{ iface = nets[i+1]
mac = get_inxi(iface, 'mac')
if not speed:
speed = get_inxi(iface, "speed")
self.components.append({
"type": "NetworkAdapter", "type": "NetworkAdapter",
"model": model, "model": model,
"manufacturer": get_inxi(n, 'vendor'), "manufacturer": manufacturer,
"serialNumber": get_inxi(iface, 'mac'), "serialNumber": mac,
"speed": speed, "speed": speed,
"interface": interface, "interface": interface,
} })
)
def get_sound_card(self): def get_sound_card(self):
audio = get_inxi_key(self.inxi, "Audio") or [] audio = get_inxi_key(self.inxi, "Audio") or []

View file

@ -14,7 +14,7 @@ EREUSE24 = [
"model", "model",
"chassis", "chassis",
"serial_number", "serial_number",
"sku" "mac"
] ]
# EREUSE22 is used for build the chid of DPP # EREUSE22 is used for build the chid of DPP