From c163610aca08a8a77cec7919279a1cb010e5d7a4 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 29 Aug 2021 20:11:42 +0200 Subject: [PATCH] update project --- agent_based/cisco_bgp_peer.py | 13 ++++++++++++- cisco_bgp_peer.mkp | Bin 9568 -> 9671 bytes 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/agent_based/cisco_bgp_peer.py b/agent_based/cisco_bgp_peer.py index 9fe944e..cf4d73a 100644 --- a/agent_based/cisco_bgp_peer.py +++ b/agent_based/cisco_bgp_peer.py @@ -9,6 +9,13 @@ # # Monitor status of Cisco BGP Peers (IPv4 and IPv6) # +# ToDo: move longoutput to inventory, based on inv_bgp_peer +# ToDo: move helper functions to utils/bgp_peer, merge with bgp_peer +# ToDo: merge WATO with bgp_peer +# ToDo: merge metrics with bgp_peer +# ToDo: merge check function with bgp_peer +# goal: only snmp_section and parse function left +# # 2018-05-24: changed counters to 1/s # 2018-05-25: a lot of code cleanup # packet name changed from cisco_bgp to cisco_bgp_peer @@ -39,6 +46,7 @@ # 2021-08-22: added WATO option for admin state down # 2021-08-23: changed service name from "Cisco BGP peer" to "BGP peer" --> streamline with bgp_peer # get localas from BGP-4-MIB::bgpLocalAs if CISCO-BGP4-MIB::cbgpPeer2LocalAs not set +# 2021-08-29: fixed bgpLocalAs in BGP-4-MIB not set import re import time @@ -229,7 +237,10 @@ def parse_cisco_bgp_peer(string_table: List[StringTable]) -> Dict[str, Peer]: cbgpPeer2Entry, cbgpPeer2AddrFamily, bgpLocalAs = string_table # local as from BGP-4-MIB - bgpLocalAs = bgpLocalAs[0][0] + try: + bgpLocalAs = bgpLocalAs[0][0] + except (IndexError): + bgpLocalAs = 'N/A' # create dictionary from cbgpPeer2Entry (peer ip address as index) peer_table = {} diff --git a/cisco_bgp_peer.mkp b/cisco_bgp_peer.mkp index 80bcb383198a032e785f1d71e25bf5355ed89e8f..636303dba04e990957156bc38b66c04b1a4b97fd 100644 GIT binary patch delta 9563 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 F0RVKm-~|8x literal 9568 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 -- GitLab