Update modules/interfaces.py
This commit is contained in:
parent
3309c86c58
commit
e93d8e2ef3
1 changed files with 22 additions and 5 deletions
|
|
@ -1,5 +1,6 @@
|
|||
def parse_interface_data(data):
|
||||
interface_table = []
|
||||
current_interface_entry = None
|
||||
|
||||
if "data" in data:
|
||||
raw_data = data["data"]
|
||||
|
|
@ -7,17 +8,18 @@ def parse_interface_data(data):
|
|||
for line in raw_data.split("\n"):
|
||||
if line.startswith("Interface") and "IP Address" in line:
|
||||
continue
|
||||
|
||||
if line.startswith("Codes:"):
|
||||
continue
|
||||
|
||||
if line.strip().startswith('-'):
|
||||
continue
|
||||
if not line.strip():
|
||||
current_interface_entry = None
|
||||
continue
|
||||
|
||||
if line.strip():
|
||||
if not line[0].isspace():
|
||||
interface_info = line.split()
|
||||
if len(interface_info) >= 6:
|
||||
interface_table.append({
|
||||
current_interface_entry = {
|
||||
"interface": interface_info[0],
|
||||
"ip_address": interface_info[1] if interface_info[1] != '-' else 'N/A',
|
||||
"mac_address": interface_info[2],
|
||||
|
|
@ -25,6 +27,21 @@ def parse_interface_data(data):
|
|||
"mtu": interface_info[4],
|
||||
"status": interface_info[5],
|
||||
"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
|
||||
Loading…
Add table
Add a link
Reference in a new issue