Update modules/interfaces.py

This commit is contained in:
Blackwhitebear8 2025-10-31 19:29:16 +01:00
parent 3309c86c58
commit e93d8e2ef3

View file

@ -1,5 +1,6 @@
def parse_interface_data(data): def parse_interface_data(data):
interface_table = [] interface_table = []
current_interface_entry = None
if "data" in data: if "data" in data:
raw_data = data["data"] raw_data = data["data"]
@ -7,17 +8,18 @@ def parse_interface_data(data):
for line in raw_data.split("\n"): for line in raw_data.split("\n"):
if line.startswith("Interface") and "IP Address" in line: if line.startswith("Interface") and "IP Address" in line:
continue continue
if line.startswith("Codes:"): if line.startswith("Codes:"):
continue continue
if line.strip().startswith('-'): if line.strip().startswith('-'):
continue continue
if not line.strip():
current_interface_entry = None
continue
if line.strip(): if not line[0].isspace():
interface_info = line.split() interface_info = line.split()
if len(interface_info) >= 6: if len(interface_info) >= 6:
interface_table.append({ current_interface_entry = {
"interface": interface_info[0], "interface": interface_info[0],
"ip_address": interface_info[1] if interface_info[1] != '-' else 'N/A', "ip_address": interface_info[1] if interface_info[1] != '-' else 'N/A',
"mac_address": interface_info[2], "mac_address": interface_info[2],
@ -25,6 +27,21 @@ def parse_interface_data(data):
"mtu": interface_info[4], "mtu": interface_info[4],
"status": interface_info[5], "status": interface_info[5],
"description": " ".join(interface_info[6:]) "description": " ".join(interface_info[6:])
}) }
interface_table.append(current_interface_entry)
else:
current_interface_entry = None
elif current_interface_entry and line[0].isspace():
additional_ip = line.strip()
if len(additional_ip.split()) == 1 and ('/' in additional_ip or ':' in additional_ip):
if current_interface_entry["ip_address"] == 'N/A':
current_interface_entry["ip_address"] = additional_ip
else:
current_interface_entry["ip_address"] += f"<br>{additional_ip}"
else:
current_interface_entry = None
return interface_table return interface_table