From 1577da1dc84287355c60ffe70ea3908464eb10e3 Mon Sep 17 00:00:00 2001
From: Thl CMK <thl-cmk@outlook.com>
Date: Mon, 2 Mar 2020 15:44:34 +0100
Subject: [PATCH] update project

---
 checks/cisco_bgp_peer              | 178 ++++++++++++++---------------
 cisco_bgp_peer.mkp                 | Bin 9136 -> 9133 bytes
 packages/cisco_bgp_peer            |   4 +-
 web/plugins/wato/cisco_bgp_peer.py |  13 ++-
 4 files changed, 93 insertions(+), 102 deletions(-)

diff --git a/checks/cisco_bgp_peer b/checks/cisco_bgp_peer
index 9fd01f2..64a2a7a 100644
--- a/checks/cisco_bgp_peer
+++ b/checks/cisco_bgp_peer
@@ -19,7 +19,7 @@
 # 02.11.2018: modified scanfunction (from "find 'cisco' =-1"  to "'cisco' in OID"
 # 02.18.2019: added fix for empty values ("" instead of "0") sugested by Laurent Barbier (lbarbier[at]arkane-studios[dot]com)
 # 24.02.2020: added workaround for missing cbgpPeer2AddrFamily (example L2VPN EVPN peers, Fix for jonale82[at]gmail[dot]com)
-#
+# 02.03.2020: changed handling of perfdata, add only data the are really there (not None, instead of setting them to 0)
 #
 
 #
@@ -263,7 +263,6 @@ def parse_cisco_bgp_peer(info):
 
         return names[int(byte1, 16)].get(int(byte2, 16))
 
-
     # bgp not active
     if info == [[], []]:
         return None
@@ -277,64 +276,34 @@ def parse_cisco_bgp_peer(info):
             oid_end, addrfamilyname, acceptedprefixes, deniedprefixes, prefixadminlimit, prefixthreshold, \
             prefixclearthreshold, advertisedprefixes, suppressedprefixes, withdrawnprefixes = entry
 
-            remoteaddr = cisco_bgp_get_peer(oid_end)
+            remoteaddr = cisco_bgp_get_peer(entry[0])
+            peer = {'remoteaddr': remoteaddr}
+
+            peer.update({'addrfamilyname': addrfamilyname})
 
-            # check if prefixadminlimit is set
             if prefixadminlimit.isdigit():
-                prefixadminlimit = int(prefixadminlimit)
-            else:
-                prefixadminlimit = 0
+                peer.update({'prefixadminlimit':int(prefixadminlimit)})
 
-            # check if prefixthreshold is set
             if prefixthreshold.isdigit():
-                prefixthreshold = int(prefixthreshold)
-            else:
-                prefixthreshold = 0
+                peer.update({'prefixthreshold':int(prefixthreshold)})
 
-            # check if prefixclearthreshold is set
             if prefixclearthreshold.isdigit():
-                prefixclearthreshold = int(prefixclearthreshold)
-            else:
-                prefixclearthreshold = 0
+                peer.update({'prefixclearthreshold':int(prefixclearthreshold)})
 
             if acceptedprefixes.isdigit():
-                acceptedprefixes = int(acceptedprefixes)
-            else:
-                acceptedprefixes = 0
+                peer.update({'acceptedprefixes':int(acceptedprefixes)})
 
             if advertisedprefixes.isdigit():
-                advertisedprefixes = int(advertisedprefixes)
-            else:
-                advertisedprefixes = 0
+                peer.update({'advertisedprefixes':int(advertisedprefixes)})
 
-            # fix sugested by Laurent Barbier (lbarbier[at]arkane-studios[dot]com)
-            # some Cisco devices report not "0" if the value is 0, instead the report "". for example Nexus devices behave like this.
             if deniedprefixes.isdigit():
-                deniedprefixes = int(deniedprefixes)
-            else:
-                deniedprefixes = 0
+                peer.update({'deniedprefixes':int(deniedprefixes)})
 
             if suppressedprefixes.isdigit():
-                suppressedprefixes = int(suppressedprefixes)
-            else:
-                suppressedprefixes = 0
+                peer.update({'suppressedprefixes':int(suppressedprefixes)})
 
             if withdrawnprefixes.isdigit():
-                withdrawnprefixes = int(withdrawnprefixes)
-            else:
-                withdrawnprefixes = 0
-
-
-            peer = {'remoteaddr': remoteaddr,
-                    'addrfamilyname': addrfamilyname,
-                    'acceptedprefixes': acceptedprefixes,
-                    'deniedprefixes': deniedprefixes,
-                    'prefixadminlimit': prefixadminlimit,
-                    'prefixthreshold': prefixthreshold,
-                    'prefixclearthreshold': prefixclearthreshold,
-                    'advertisedprefixes': advertisedprefixes,
-                    'suppressedprefixes': suppressedprefixes,
-                    'withdrawnprefixes': withdrawnprefixes, }
+                peer.update({'withdrawnprefixes':int(withdrawnprefixes)})
 
             peer_prefixes.update({'%s %s' % (remoteaddr, addrfamilyname): peer})
 
@@ -357,23 +326,35 @@ def parse_cisco_bgp_peer(info):
         inupdateelapsedtime, lasterrortxt, prevstate = entry
 
         peer = {'remoteaddr': cisco_bgp_get_peer(oid_end),
-                'state': int(state),
-                'adminstate': int(adminstatus),
                 'localaddr': bgp_render_ip_address(localaddr),
-                'localas': int(localas),
                 'localid': localidentifier,
-                'remoteas': int(remoteas),
                 'remoteid': remoteidentifier,
-                'inupdates': int(inupdates),
-                'outupdates': int(outupdates),
-                'intotalmessages': int(intotalmessages),
-                'outtotalmessages': int(outtotalmessages),
                 'lasterror': cisco_bgp_errors(lasterror),
-                'fsmestablishedtransitions': int(fsmestablishedtransitions),
-                'fsmestablishedtime': int(fsmestablishedtime),
                 'inupdateelapsedtime': inupdateelapsedtime,
                 'lasterrortxt': lasterrortxt,
-                'prevstate': int(prevstate),}
+                'prevstate': int(prevstate),
+                }
+
+        if state.isdigit():
+            peer.update({'state': int(state)})
+        if adminstatus.isdigit():
+            peer.update({'adminstate': int(adminstatus)})
+        if localas.isdigit():
+            peer.update({'localas': int(localas)})
+        if remoteas.isdigit():
+            peer.update({'remoteas': int(remoteas)})
+        if inupdates.isdigit():
+            peer.update({'inupdates':int(inupdates)})
+        if outupdates.isdigit():
+            peer.update({'outupdates': int(outupdates)})
+        if intotalmessages.isdigit():
+            peer.update({'intotalmessages': int(intotalmessages)})
+        if outtotalmessages.isdigit():
+            peer.update({'outtotalmessages': int(outtotalmessages)})
+        if fsmestablishedtransitions.isdigit():
+            peer.update({'fsmestablishedtransitions': int(fsmestablishedtransitions)})
+        if inupdates.isdigit():
+            peer.update({'fsmestablishedtime': int(fsmestablishedtime)})
 
         peer_table.update({'%s' % cisco_bgp_get_peer(oid_end): peer})
 
@@ -442,7 +423,7 @@ def check_cisco_bgp_peer(item, params, parsed):
             peer_not_found_state = not_found_state
 
     if prefixes:
-        state = 0
+        # state = 0
         perfdata = []
         infotext = ''
         longoutput = ''
@@ -496,11 +477,6 @@ def check_cisco_bgp_peer(item, params, parsed):
             else:
                 bgptype = ' (eBGP)'
 
-        acceptedprefixes = prefixes.get('acceptedprefixes', 0)
-        prefixadminlimit = prefixes.get('prefixadminlimit', 0)
-        prefixthreshold = prefixes.get('prefixthreshold', 0)
-        warnthreshold = prefixadminlimit / 100.0 * prefixthreshold  # use float (100.0) to get xx.xx in division
-
         longoutput_data = [
             ['IP-address (remote/local)', peer.get('remoteaddr'), peer.get('localaddr')],
             ['Router-ID (remote/local)', peer.get('remoteid'), peer.get('localid')],
@@ -511,11 +487,20 @@ def check_cisco_bgp_peer(item, params, parsed):
             ['Last error text', peer.get('lasterrortxt'), ''],
             ['Previous state', cisco_bgp_peerstate(peer.get('prevstate')), ''],
             ['Address family name', prefixes.get('addrfamilyname', 'unknown'), ''],
-            ['Prefix admin limit (prefixes)', '%.0d' % prefixadminlimit, ''],
-            ['Prefix threshold (prefixes/%)', '%.0d' % warnthreshold, '%.0d' % prefixthreshold],
             ['Prefix clear threshold (%)', '%.0d' % prefixes.get('prefixclearthreshold', 0), '']
+            ,
            ]
 
+        acceptedprefixes = prefixes.get('acceptedprefixes', None)
+        prefixadminlimit = prefixes.get('prefixadminlimit', None)
+        prefixthreshold = prefixes.get('prefixthreshold', None)
+
+        if prefixadminlimit is not None and prefixthreshold is not None:
+            warnthreshold = prefixadminlimit / 100.0 * prefixthreshold  # use float (100.0) to get xx.xx in division
+            longoutput_data.append(['Prefix admin limit (prefixes)', '%.0d' % prefixadminlimit, ''])
+            longoutput_data.append(['Prefix threshold (prefixes/%)', '%.0d' % warnthreshold, '%.0d' % prefixthreshold])
+        else:
+            warnthreshold = None
         if params.get('htmloutput', False):
             #
             # disable 'Escape HTML codes in plugin output' in wato --> global settings
@@ -535,49 +520,52 @@ def check_cisco_bgp_peer(item, params, parsed):
                 else:
                     longoutput += '\n{}: {}'.format(entry[0], entry[1])
 
-        if prefixadminlimit > 0:
+        if prefixadminlimit is not None and acceptedprefixes is not None and prefixadminlimit is not None and warnthreshold is not None:
             if acceptedprefixes >= prefixadminlimit:
-                state = max(2, state)
-                infotext = 'Prefix admin limit reached(!!) ' + infotext
+                yield 2, 'Prefix admin limit reached (%d/%d)' % (acceptedprefixes, prefixadminlimit)
             elif prefixthreshold > 0:
                 perfdata.append(('acceptedprefixes', acceptedprefixes, warnthreshold, prefixadminlimit))
                 if acceptedprefixes >= warnthreshold:
-                    state = max(1, state)
-                    infotext = 'Prefix warn threshold reached(!) ' + infotext
+                    yield 1, 'Prefix warn threshold reached (%d/%d)' % (acceptedprefixes, warnthreshold)
             else:
                 perfdata.append(('acceptedprefixes', acceptedprefixes, '', prefixadminlimit))
-        else:
+        elif acceptedprefixes is not None:
             perfdata.append(('acceptedprefixes', acceptedprefixes))
 
         now_time = time.time()
         rate_item = item.replace(' ', '_')
 
-        deniedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('deniedprefixes', rate_item), now_time, prefixes.get('deniedprefixes', 0), onwrap=SKIP)
-        advertisedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('advertisedprefixes', rate_item), now_time, prefixes.get('advertisedprefixes', 0), onwrap=SKIP)
-        withdrawnprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('withdrawnprefixes', rate_item), now_time, prefixes.get('withdrawnprefixes', 0), onwrap=SKIP)
-        suppressedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('suppressedprefixes', rate_item), now_time, prefixes.get('suppressedprefixes', 0), onwrap=SKIP)
-
-        inupdates = get_rate('cisco_bgp_peer.%s.%s' % ('inupdates', rate_item), now_time, peer.get('inupdates', 0), onwrap=SKIP)
-        outupdates = get_rate('cisco_bgp_peer.%s.%s' % ('outupdates', rate_item), now_time, peer.get('outupdates', 0), onwrap=SKIP)
-
-        intotalmessages = get_rate('cisco_bgp_peer.%s.%s' % ('intotalmessages', rate_item), now_time, peer.get('intotalmessages', 0), onwrap=SKIP)
-        outtotalmessages = get_rate('cisco_bgp_peer.%s.%s' % ('outtotalmessages', rate_item), now_time, peer.get('outtotalmessages', 0), onwrap=SKIP)
-
-        # prefixes
-        # 'unit', <value>, <warn-at>, <crit-at>, <min value>, <max value>
-        perfdata.append(('deniedprefixes', deniedprefixes))
-        perfdata.append(('advertisedprefixes', advertisedprefixes))
-        perfdata.append(('withdrawnprefixes', withdrawnprefixes))
-        perfdata.append(('suppressedprefixes', suppressedprefixes))
-
-        perfdata.append(('inupdates', inupdates))
-        perfdata.append(('outupdates', outupdates))
-        perfdata.append(('intotalmessages', intotalmessages))
-        perfdata.append(('outtotalmessages', outtotalmessages))
-
-        perfdata.append(('fsmestablishedtransitions', peer.get('fsmestablishedtransitions')))
-        perfdata.append(('fsmestablishedtime', peer.get('fsmestablishedtime')))
-        perfdata.append(('inupdateelapsedtime', peer.get('inupdateelapsedtime')))
+        if prefixes.get('deniedprefixes', None) is not None:
+            deniedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('deniedprefixes', rate_item), now_time, prefixes.get('deniedprefixes', 0), onwrap=SKIP)
+            perfdata.append(('deniedprefixes', deniedprefixes))
+        if prefixes.get('advertisedprefixes', None) is not None:
+            advertisedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('advertisedprefixes', rate_item), now_time, prefixes.get('advertisedprefixes', 0), onwrap=SKIP)
+            perfdata.append(('advertisedprefixes', advertisedprefixes))
+        if prefixes.get('withdrawnprefixes', None) is not None:
+            withdrawnprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('withdrawnprefixes', rate_item), now_time, prefixes.get('withdrawnprefixes', 0), onwrap=SKIP)
+            perfdata.append(('withdrawnprefixes', withdrawnprefixes))
+        if prefixes.get('suppressedprefixes', None) is not None:
+            suppressedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('suppressedprefixes', rate_item), now_time, prefixes.get('suppressedprefixes', 0), onwrap=SKIP)
+            perfdata.append(('suppressedprefixes', suppressedprefixes))
+
+        if peer.get('inupdates', None) is not None:
+            inupdates = get_rate('cisco_bgp_peer.%s.%s' % ('inupdates', rate_item), now_time, peer.get('inupdates', 0), onwrap=SKIP)
+            perfdata.append(('inupdates', inupdates))
+        if peer.get('outupdates', None) is not None:
+            outupdates = get_rate('cisco_bgp_peer.%s.%s' % ('outupdates', rate_item), now_time, peer.get('outupdates', 0), onwrap=SKIP)
+            perfdata.append(('outupdates', outupdates))
+        if peer.get('intotalmessages', None) is not None:
+            intotalmessages = get_rate('cisco_bgp_peer.%s.%s' % ('intotalmessages', rate_item), now_time, peer.get('intotalmessages', 0), onwrap=SKIP)
+            perfdata.append(('intotalmessages', intotalmessages))
+        if peer.get('outtotalmessages', None) is not None:
+            outtotalmessages = get_rate('cisco_bgp_peer.%s.%s' % ('outtotalmessages', rate_item), now_time, peer.get('outtotalmessages', 0), onwrap=SKIP)
+            perfdata.append(('outtotalmessages', outtotalmessages))
+        if peer.get('fsmestablishedtransitions', None) is not None:
+            perfdata.append(('fsmestablishedtransitions', peer.get('fsmestablishedtransitions')))
+        if peer.get('fsmestablishedtime', None) is not None:
+            perfdata.append(('fsmestablishedtime', peer.get('fsmestablishedtime')))
+        if peer.get('inupdateelapsedtime', None) is not None:
+            perfdata.append(('inupdateelapsedtime', peer.get('inupdateelapsedtime')))
 
         if infotext[0:2] == ', ':
             infotext = infotext[2:]
diff --git a/cisco_bgp_peer.mkp b/cisco_bgp_peer.mkp
index 92521c7a27cd8c8bfcb2839d5c687204a62670e6..f38a5837880c0e0eabf8b68b55b52d9765e19a5e 100644
GIT binary patch
literal 9133
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

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

diff --git a/packages/cisco_bgp_peer b/packages/cisco_bgp_peer
index 12fb6a2..43fb940 100644
--- a/packages/cisco_bgp_peer
+++ b/packages/cisco_bgp_peer
@@ -7,6 +7,6 @@
  'name': 'cisco_bgp_peer',
  'num_files': 3,
  'title': u'Cisco BGP Peer',
- 'version': '20200224.v.0.2c',
+ 'version': '20200302.v.0.2d',
  'version.min_required': '1.2.8b8',
- 'version.packaged': '1.4.0p35'}
\ No newline at end of file
+ 'version.packaged': '1.4.0p38'}
\ No newline at end of file
diff --git a/web/plugins/wato/cisco_bgp_peer.py b/web/plugins/wato/cisco_bgp_peer.py
index ae07b0f..a4257f7 100644
--- a/web/plugins/wato/cisco_bgp_peer.py
+++ b/web/plugins/wato/cisco_bgp_peer.py
@@ -68,19 +68,22 @@ register_check_parameters(
                      title=('BGP Peers'),
                      elements=[
                          TextUnicode(
-                             title=_('BGP Peer object name'),
-                             help=_('The configured value must match a BGP peer reported by the monitored '
-                                    'device.'),
+                             title=_('BGP Peer item name'),
+                             help=_('The configured value must match a BGP item reported by the monitored '
+                                    'device. For example: "10.194.115.98 IPv4 Unicast"'),
                              allow_empty=False,
                          ),
                          TextUnicode(
                              title=_('BGP Peer Alias'),
                              help=_('You can configure an individual alias here for the BGP peer matching '
-                                    'the IP-Address configured in the field above.'),
+                                    'the text configured in the "BGP Peer item name" field. The alias will '
+                                    'be shown in the infotext'),
                          ),
                          MonitoringState(
                              default_value=2,
-                             title=_('State if BGP peer is not found'),
+                             title=_('State if not found'),
+                             help=_('You can configure an individual state if the BGP peer matching the text '
+                                     'configured in the "BGP Peer item name" field is not found')
                          )]),
                  add_label=_('Add BGP peer'),
                  movable=False,
-- 
GitLab