From ac8cdc1d499592e9021cd4f792b993e3c4c09b95 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Thu, 12 May 2022 17:46:40 +0200
Subject: [PATCH] update project

---
 agent_based/cisco_bgp_peer.py |  68 +++++++++++++++++++++++++---------
 cisco_bgp_peer.mkp            | Bin 5659 -> 5822 bytes
 packages/cisco_bgp_peer       |   2 +-
 3 files changed, 51 insertions(+), 19 deletions(-)

diff --git a/agent_based/cisco_bgp_peer.py b/agent_based/cisco_bgp_peer.py
index 9f1a4ff..6ff15e1 100644
--- a/agent_based/cisco_bgp_peer.py
+++ b/agent_based/cisco_bgp_peer.py
@@ -52,6 +52,8 @@
 # 2022-04-29: added info if device is admin prefix limit capable (device_admin_limit)
 # 2022-04-30: code cleanup/streamlining
 # 2022-05-09: added item to BgpPeer class, this is used in the discovery function
+# 2022-05-11: changed bgp_get_peer_entry to get proper parameters instead of Nontransparent list
+#             added remote_as to BgpPeerItem
 #
 
 import copy
@@ -83,6 +85,8 @@ from cmk.base.plugins.agent_based.utils.bgp_peer import (
 #  cisco_bgp_peer (CISCO-BGP4-MIB:cbgpPeer2Entry)
 #
 ###########################################################################
+
+
 @dataclass
 class CiscoPrefixes:
     address_family: str
@@ -133,16 +137,30 @@ def parse_cisco_bgp_peer(string_table: List[StringTable]) -> Dict[str, BgpPeer]:
     # create dictionary from cbgpPeer2Entry (peer ip address as index)
     peer_table: Dict[str, BgpPeer] = {}
     for entry in cbgpPeer2Entry:
-        remote_address = bgp_get_ip_address_from_oid(entry[0])
-        entry[0] = remote_address  # replace OID_END with remote address
-        bgp_peer = bgp_get_peer_entry(entry)
+        remote_addr, peer_state, admin_state, remote_as, in_updates, out_updates, in_messages, out_messages, \
+        fsm_established_transitions, fsm_established_time, in_update_elapsed_time = entry
+
+        remote_addr = bgp_get_ip_address_from_oid(remote_addr)
+        bgp_peer = bgp_get_peer_entry(
+            remote_addr=remote_addr,
+            peer_state=peer_state,
+            admin_state=admin_state,
+            remote_as=remote_as,
+            in_updates=in_updates,
+            out_updates=out_updates,
+            in_messages=in_messages,
+            out_messages=out_messages,
+            fsm_established_transitions=fsm_established_transitions,
+            fsm_established_time=fsm_established_time,
+            in_update_elapsed_time=in_update_elapsed_time
+        )
         if bgp_peer:
-            prefixes = peer_prefixes.get(remote_address, [])
+            prefixes = peer_prefixes.get(remote_addr, [])
             if prefixes:
                 for address_family in prefixes:
-                    item = f'{remote_address} {address_family.address_family}'
+                    item = f'{remote_addr} {address_family.address_family}'
                     temp_bgp_peer = copy.deepcopy(bgp_peer)
-                    peer_table[item] = temp_bgp_peer[remote_address]
+                    peer_table[item] = temp_bgp_peer[remote_addr]
                     peer_table[item].accepted_prefixes = address_family.accepted_prefixes
                     peer_table[item].prefix_admin_limit = address_family.prefix_admin_limit
                     peer_table[item].prefix_clear_threshold = address_family.prefix_clear_threshold
@@ -169,6 +187,7 @@ register.snmp_section(
                 OIDEnd(),
                 '3',  # cbgpPeer2State
                 '4',  # cbgpPeer2AdminStatus
+                '11',  # cbgpPeer2RemoteAs
                 '13',  # cbgpPeer2InUpdates
                 '14',  # cbgpPeer2OutUpdates
                 '15',  # cbgpPeer2InTotalMessages
@@ -213,21 +232,33 @@ register.snmp_section(
 def parse_cisco_bgp_peer_3(string_table: StringByteTable) -> Optional[Dict[str, BgpPeer]]:
     peer_table = {}
     for entry in string_table:
-        if entry[0] == '1':  # IPv4 address
-            remote_address = '.'.join(f'{m}' for m in entry[1])
-            entry[1] = remote_address
+        remote_addr_type, remote_addr, routing_instance, peer_state, admin_state, remote_as, in_updates, out_updates, \
+        in_messages, out_messages,  fsm_established_transitions, fsm_established_time, in_update_elapsed_time = entry
+
+        if remote_addr_type == '1':  # IPv4 address
+            remote_addr = '.'.join(f'{m}' for m in remote_addr)
             routing_instance = None
-            if entry[2] != 'default':
-                routing_instance = f'vrf {entry[2]}'
-                # entry[1] += f' {routing_instance}'
-            entry.pop(2)  # remove vrf name
-            entry.pop(0)  # remove remote address type
-            bgp_peer = bgp_get_peer_entry(entry)
+            if routing_instance != 'default':
+                routing_instance = f'vrf {routing_instance}'
+
+            bgp_peer = bgp_get_peer_entry(
+                remote_addr=remote_addr,
+                peer_state=peer_state,
+                admin_state=admin_state,
+                remote_as=remote_as,
+                in_updates=in_updates,
+                out_updates=out_updates,
+                in_messages=in_messages,
+                out_messages=out_messages,
+                fsm_established_transitions=fsm_established_transitions,
+                fsm_established_time=fsm_established_time,
+                in_update_elapsed_time=in_update_elapsed_time
+            )
             if bgp_peer:
-                bgp_peer[remote_address].item['routing_instance'] = routing_instance
+                bgp_peer[remote_addr].item['routing_instance'] = routing_instance
                 if routing_instance:
-                    item = f'{remote_address} {routing_instance}'
-                    bgp_peer = {item: bgp_peer[remote_address]}
+                    item = f'{remote_addr} {routing_instance}'
+                    bgp_peer = {item: bgp_peer[remote_addr]}
                 peer_table.update(bgp_peer)
     return peer_table
 
@@ -245,6 +276,7 @@ register.snmp_section(
                 '4',  # cbgpPeer3VrfName
                 '5',  # cbgpPeer3State
                 '6',  # cbgpPeer3AdminStatus
+                '13',  # cbgpPeer3RemoteAs
                 '15',  # cbgpPeer3InUpdates
                 '16',  # cbgpPeer3OutUpdates
                 '17',  # cbgpPeer3InTotalMessages
diff --git a/cisco_bgp_peer.mkp b/cisco_bgp_peer.mkp
index 8916e2b43f32609f8e5bac57a4c781b9931752ac..cecc66bd5be6fd8c5cd76de7f85ea26e95a20924 100644
GIT binary patch
literal 5822
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
Cm|L;{

literal 5659
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

diff --git a/packages/cisco_bgp_peer b/packages/cisco_bgp_peer
index a7901ec..233e8a7 100644
--- a/packages/cisco_bgp_peer
+++ b/packages/cisco_bgp_peer
@@ -26,7 +26,7 @@
  'name': 'cisco_bgp_peer',
  'num_files': 3,
  'title': 'Cisco BGP Peer',
- 'version': '20220509.v.0.7',
+ 'version': '20220511.v.0.8',
  'version.min_required': '2.0.0',
  'version.packaged': '2021.09.20',
  'version.usable_until': None}
\ No newline at end of file
-- 
GitLab