fix: use detailed ArubaOS-S LLDP output
Query the WC.16.11 remote-device detail view and parse Local Port, ChassisId, PortId, SysName, and remote management addresses.
This commit is contained in:
+9
-4
@@ -15,7 +15,7 @@ PLATFORMS = {
|
|||||||
|
|
||||||
COMMANDS = {
|
COMMANDS = {
|
||||||
"aruba_cx": ("no page", "show interface brief", "show lldp neighbor-info detail"),
|
"aruba_cx": ("no page", "show interface brief", "show lldp neighbor-info detail"),
|
||||||
"aruba_aos": ("no page", "show interfaces brief", "show lldp info remote-device"),
|
"aruba_aos": ("no page", "show interfaces brief", "show lldp info remote-device detail"),
|
||||||
"hpe_comware": ("screen-length disable", "display interface brief", "display lldp neighbor-information verbose"),
|
"hpe_comware": ("screen-length disable", "display interface brief", "display lldp neighbor-information verbose"),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,20 +327,25 @@ def parse_neighbors(output):
|
|||||||
system_name = _field(block, (
|
system_name = _field(block, (
|
||||||
r"^\s*Neighbor Chassis-Name\s*:\s*(.+)$",
|
r"^\s*Neighbor Chassis-Name\s*:\s*(.+)$",
|
||||||
r"^[ \t]*Neighbor System-Name[ \t]*:[ \t]*(.*)$",
|
r"^[ \t]*Neighbor System-Name[ \t]*:[ \t]*(.*)$",
|
||||||
r"^\s*(?:System Name|SysName)\s*[: ]\s*(.+)$",
|
r"^[ \t]*(?:System Name|SysName)[ \t]*:[ \t]*(.*)$",
|
||||||
r"^\s*Neighbor name\s*[: ]\s*(.+)$",
|
r"^\s*Neighbor name\s*[: ]\s*(.+)$",
|
||||||
))
|
))
|
||||||
if not system_name:
|
if not system_name:
|
||||||
system_name = _field(block, (r"^\s*Neighbor Chassis-ID\s*:\s*(.+)$",))
|
system_name = _field(block, (
|
||||||
|
r"^[ \t]*Neighbor Chassis-ID[ \t]*:[ \t]*(.+)$",
|
||||||
|
r"^[ \t]*ChassisId[ \t]*:[ \t]*(.+)$",
|
||||||
|
))
|
||||||
remote_port = _field(block, (
|
remote_port = _field(block, (
|
||||||
r"^\s*Neighbor Port-ID\s*:\s*(.+)$",
|
r"^\s*Neighbor Port-ID\s*:\s*(.+)$",
|
||||||
r"^\s*Neighbor Port-Desc\s*:\s*(.+)$",
|
r"^\s*Neighbor Port-Desc\s*:\s*(.+)$",
|
||||||
r"^\s*(?:Port ID|PortId|Port ID subtype.*\n\s*Port ID)\s*[: ]\s*(.+)$",
|
r"^[ \t]*(?:Port ID|PortId)[ \t]*:[ \t]*(.*)$",
|
||||||
|
r"^\s*Port ID subtype.*\n\s*Port ID\s*[: ]\s*(.+)$",
|
||||||
r"^\s*(?:Port Description|PortDesc)\s*[: ]\s*(.+)$",
|
r"^\s*(?:Port Description|PortDesc)\s*[: ]\s*(.+)$",
|
||||||
))
|
))
|
||||||
management_ip = _field(block, (
|
management_ip = _field(block, (
|
||||||
r"^\s*Neighbor Management-Address\s*:\s*([0-9a-fA-F:.]+)",
|
r"^\s*Neighbor Management-Address\s*:\s*([0-9a-fA-F:.]+)",
|
||||||
r"^\s*(?:Management Address|Management address|Management IP)\s*[: ]\s*([0-9a-fA-F:.]+)",
|
r"^\s*(?:Management Address|Management address|Management IP)\s*[: ]\s*([0-9a-fA-F:.]+)",
|
||||||
|
r"^[ \t]*Address[ \t]*:[ \t]*([0-9a-fA-F:.]+)[ \t]*$",
|
||||||
))
|
))
|
||||||
if local_port and (system_name or remote_port):
|
if local_port and (system_name or remote_port):
|
||||||
neighbors.append({
|
neighbors.append({
|
||||||
|
|||||||
Reference in New Issue
Block a user