Update vyos.py

Debugging
This commit is contained in:
Wieger Bontekoe 2024-09-25 15:44:37 +02:00 committed by GitHub
parent d769bd0f20
commit 72f52ea387
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 44 additions and 41 deletions

View File

@ -531,92 +531,95 @@ class VyOSDriver(NetworkDriver):
dict(zip(fsm.header, neighbor)) for neighbor in result dict(zip(fsm.header, neighbor)) for neighbor in result
] ]
for neighbor in neighbors_dicts: logger.error(f"Size of neighbors_dicts is " + len(neighbors_dicts))
remote_as = neighbor["REMOTE_AS"] for neighbor_detail in neighbors_dicts:
remote_as = neighbor_detail["REMOTE_AS"]
logger.error(f"Parsing AS {remote_as} for neighbor {neighbor}")
peer_dict = { peer_dict = {
"up": neighbor["BGP_STATE"].lower() == "established", "up": neighbor_detail["BGP_STATE"].lower() == "established",
"local_as": int(neighbor["LOCAL_AS"]), "local_as": int(neighbor_detail["LOCAL_AS"]),
"remote_as": int(neighbor["REMOTE_AS"]), "remote_as": int(neighbor_detail["REMOTE_AS"]),
"router_id": neighbor["LOCAL_ROUTER_ID"], "router_id": neighbor_detail["LOCAL_ROUTER_ID"],
"local_address": neighbor[ "local_address": neighbor_detail[
"LOCAL_ROUTER_ID" "LOCAL_ROUTER_ID"
], # Adjusted from LOCAL_ROUTER_ID based on context ], # Adjusted from LOCAL_ROUTER_ID based on context
"routing_table": f"IPv{neighbor['BGP_VERSION']} Unicast", # Constructed value "routing_table": f"IPv{neighbor_detail['BGP_VERSION']} Unicast", # Constructed value
"local_address_configured": bool(neighbor["LOCAL_ROUTER_ID"]), "local_address_configured": bool(neighbor_detail["LOCAL_ROUTER_ID"]),
"local_port": ( "local_port": (
int(neighbor["LOCAL_PORT"]) int(neighbor_detail["LOCAL_PORT"])
if neighbor["LOCAL_PORT"].isdigit() if neighbor_detail["LOCAL_PORT"].isdigit()
else None else None
), ),
"remote_address": neighbor["REMOTE_ROUTER_ID"], "remote_address": neighbor_detail["REMOTE_ROUTER_ID"],
"remote_port": neighbor["FOREIGN_PORT"], "remote_port": neighbor_detail["FOREIGN_PORT"],
"multipath": neighbor.get( "multipath": neighbor_detail.get(
"DYNAMIC_CAPABILITY", "no" "DYNAMIC_CAPABILITY", "no"
), # Assuming DYNAMIC_CAPABILITY indicates multipath ), # Assuming DYNAMIC_CAPABILITY indicates multipath
"remove_private_as": ( "remove_private_as": (
"yes" "yes"
if neighbor.get("REMOVE_PRIVATE_AS", "no") != "no" if neighbor_detail.get("REMOVE_PRIVATE_AS", "no") != "no"
else "no" else "no"
), # Placeholder for actual value ), # Placeholder for actual value
"input_messages": sum( "input_messages": sum(
int(neighbor["MESSAGE_STATISTICS_RECEIVED"][i]) int(neighbor_detail["MESSAGE_STATISTICS_RECEIVED"][i])
for i in range(len(neighbor["MESSAGE_STATISTICS_TYPE"])) for i in range(len(neighbor_detail["MESSAGE_STATISTICS_TYPE"]))
if neighbor["MESSAGE_STATISTICS_TYPE"][i] if neighbor_detail["MESSAGE_STATISTICS_TYPE"][i]
in ["Updates", "Keepalives"] in ["Updates", "Keepalives"]
), ),
"output_messages": sum( "output_messages": sum(
int(neighbor["MESSAGE_STATISTICS_SENT"][i]) int(neighbor_detail["MESSAGE_STATISTICS_SENT"][i])
for i in range(len(neighbor["MESSAGE_STATISTICS_TYPE"])) for i in range(len(neighbor_detail["MESSAGE_STATISTICS_TYPE"]))
if neighbor["MESSAGE_STATISTICS_TYPE"][i] if neighbor_detail["MESSAGE_STATISTICS_TYPE"][i]
in ["Updates", "Keepalives"] in ["Updates", "Keepalives"]
), ),
"input_updates": safe_int( "input_updates": safe_int(
neighbor.get("RECEIVED_PREFIXES_IPV4") neighbor_detail.get("RECEIVED_PREFIXES_IPV4")
) )
+ safe_int(neighbor.get("RECEIVED_PREFIXES_IPV6")), + safe_int(neighbor_detail.get("RECEIVED_PREFIXES_IPV6")),
"output_updates": safe_int( "output_updates": safe_int(
neighbor.get("ADVERTISED_PREFIX_COUNT") neighbor_detail.get("ADVERTISED_PREFIX_COUNT")
), ),
"connection_state": neighbor["BGP_STATE"].lower(), "connection_state": neighbor_detail["BGP_STATE"].lower(),
"bgp_state": neighbor["BGP_STATE"].lower(), "bgp_state": neighbor_detail["BGP_STATE"].lower(),
"previous_connection_state": neighbor.get( "previous_connection_state": neighbor_detail.get(
"LAST_RESET_REASON", "unknown" "LAST_RESET_REASON", "unknown"
), ),
"last_event": neighbor.get( "last_event": neighbor_detail.get(
"LAST_EVENT", "Not Available" "LAST_EVENT", "Not Available"
), # Assuming LAST_EVENT is available ), # Assuming LAST_EVENT is available
"suppress_4byte_as": neighbor.get( "suppress_4byte_as": neighbor_detail.get(
"FOUR_BYTE_AS_CAPABILITY", "Not Configured" "FOUR_BYTE_AS_CAPABILITY", "Not Configured"
), ),
"local_as_prepend": neighbor.get( "local_as_prepend": neighbor_detail.get(
"LOCAL_AS_PREPEND", "Not Configured" "LOCAL_AS_PREPEND", "Not Configured"
), # Assuming LOCAL_AS_PREPEND is available ), # Assuming LOCAL_AS_PREPEND is available
"holdtime": int(neighbor["HOLD_TIME"]), "holdtime": int(neighbor_detail["HOLD_TIME"]),
"configured_holdtime": int(neighbor["CONFIGURED_HOLD_TIME"]), "configured_holdtime": int(neighbor_detail["CONFIGURED_HOLD_TIME"]),
"keepalive": int(neighbor["KEEPALIVE_INTERVAL"]), "keepalive": int(neighbor_detail["KEEPALIVE_INTERVAL"]),
"configured_keepalive": int( "configured_keepalive": int(
neighbor["CONFIGURED_KEEPALIVE_INTERVAL"] neighbor_detail["CONFIGURED_KEEPALIVE_INTERVAL"]
), ),
"active_prefix_count": int( "active_prefix_count": int(
neighbor.get("ACTIVE_PREFIX_COUNT", 0) neighbor_detail.get("ACTIVE_PREFIX_COUNT", 0)
), # Assuming ACTIVE_PREFIX_COUNT is available ), # Assuming ACTIVE_PREFIX_COUNT is available
"accepted_prefix_count": int( "accepted_prefix_count": int(
neighbor.get("ACCEPTED_PREFIX_COUNT", 0) neighbor_detail.get("ACCEPTED_PREFIX_COUNT", 0)
), # Assuming ACCEPTED_PREFIX_COUNT is available ), # Assuming ACCEPTED_PREFIX_COUNT is available
"suppressed_prefix_count": int( "suppressed_prefix_count": int(
neighbor.get("SUPPRESSED_PREFIX_COUNT", 0) neighbor_detail.get("SUPPRESSED_PREFIX_COUNT", 0)
), # Assuming SUPPRESSED_PREFIX_COUNT is available ), # Assuming SUPPRESSED_PREFIX_COUNT is available
"advertised_prefix_count": int( "advertised_prefix_count": int(
neighbor.get("ADVERTISED_PREFIX_COUNT", 0) neighbor_detail.get("ADVERTISED_PREFIX_COUNT", 0)
), ),
"received_prefix_count": safe_int( "received_prefix_count": safe_int(
neighbor.get("RECEIVED_PREFIXES_IPV4", 0) neighbor_detail.get("RECEIVED_PREFIXES_IPV4", 0)
) )
+ safe_int(neighbor.get("RECEIVED_PREFIXES_IPV6", 0)), + safe_int(neighbor_detail.get("RECEIVED_PREFIXES_IPV6", 0)),
"flap_count": safe_int( "flap_count": safe_int(
neighbor.get("FLAP_COUNT", 0) neighbor_detail.get("FLAP_COUNT", 0)
), # Assuming FLAP_COUNT is available ), # Assuming FLAP_COUNT is available
} }