From 19cbf8d4635743b96bbd5608d88bdcba6d53f8ac Mon Sep 17 00:00:00 2001
From: OMD site cmk16x <thl-cmk@outlook.com>
Date: Fri, 29 Oct 2021 15:22:07 +0200
Subject: [PATCH] update project

---
 checks/cisco_wlc   |  74 ++++++++++++++++++++++++---------------------
 cisco_wlc.mkp      | Bin 6777 -> 6820 bytes
 packages/cisco_wlc |  20 ++++--------
 3 files changed, 45 insertions(+), 49 deletions(-)

diff --git a/checks/cisco_wlc b/checks/cisco_wlc
index 320d05e..df95a6c 100644
--- a/checks/cisco_wlc
+++ b/checks/cisco_wlc
@@ -1,17 +1,17 @@
 #!/usr/bin/python
 # -*- encoding: utf-8; py-indent-offset: 4 -*-
 #
-# 03.04.2016 : rewrite by Th.L.
-# 24.05.2016 : added admin/operational state, fix for missing ap_name parameter
-# 01.07.2016 : added long output
-# 06.07.2016 : fixed: missing ap
-# 05.01.2018 : cosmetic changes, added metrics/cisco_wlc.py
-# 23.05.2018 : changed scan function, changed return values to yield
-#              code cleanup, removed unused oid's
-# 26.07.2018 : added code for incomplete ap data (missing lwap, data)
-# 03.08.2018 : changed cdp info: short interface name, dropped neighbor domain name, added S/N and Model to longoutput
-# 14.09.2018 : fixed issue with missing AP, fixed issue with SSH check
-#
+# 2016-04-03: rewrite by Th.L.
+# 2016-05-24: added admin/operational state, fix for missing ap_name parameter
+# 2016-07-01: added long output
+# 2016-07-06: fixed: missing ap
+# 2018-01-05: cosmetic changes, added metrics/cisco_wlc.py
+# 2018-05-23: changed scan function, changed return values to yield
+#             code cleanup, removed unused oid's
+# 2018-07-26: added code for incomplete ap data (missing lwap, data)
+# 2018-08-03: changed cdp info: short interface name, dropped neighbor domain name, added S/N and Model to longoutput
+# 2018-09-14: fixed issue with missing AP, fixed issue with SSH check
+# 2021-10-29: added basic suppoert for Catalyst 9800 Controllers
 
 
 factory_settings['cisco_wlc_defaults'] = {
@@ -87,27 +87,28 @@ def parse_cisco_wlc(info):
             ap_assocfailcountforrssilow, ap_assocfailtimes, ap_echorequestcount, ap_echoresponselosscount = lwapapentry
 
             if lwap_oid_end == OID_END:
-                lwapap_info = {'ap_uptime': int(ap_uptime),
-                               'ap_encryptionenable': int(ap_encryptionenable),
-                               'ap_powerstatus': int(ap_powerstatus),
-                               'ap_telnetenable': int(ap_telnetenable),
-                               'ap_sshenable': int(ap_sshenable),
-                               'ap_wipsenable': int(ap_wipsenable),
-                               'ap_encryptionsupported': int(ap_encryptionsupported),
-                               'ap_dataencryptionstatus': int(ap_dataencryptionstatus),
-                               'ap_adminstatus': int(ap_adminstatus),
-
-                               'ap_assoccount': int(ap_assoccount),
-                               'ap_associatedclientcount': int(ap_associatedclientcount),
-                               'ap_maxclientlimitnumbertrap': int(ap_maxclientlimitnumbertrap),
-                               'ap_reassocsucccount': int(ap_reassocsucccount),
-                               'ap_reassocfailcount': int(ap_reassocfailcount),
-                               'ap_activeclientcount': int(ap_activeclientcount),
-                               'ap_assocfailcountforrssilow': int(ap_assocfailcountforrssilow),
-                               'ap_assocfailtimes': int(ap_assocfailtimes),
-                               'ap_echorequestcount': int(ap_echorequestcount),
-                               'ap_echoresponselosscount': int(ap_echoresponselosscount)
-                               }
+                lwapap_info = {
+                    'ap_uptime': int(ap_uptime),
+                    'ap_encryptionenable': int(ap_encryptionenable),
+                    'ap_powerstatus': int(ap_powerstatus),
+                    'ap_telnetenable': int(ap_telnetenable),
+                    'ap_sshenable': int(ap_sshenable),
+                    'ap_wipsenable': int(ap_wipsenable),
+                    'ap_encryptionsupported': int(ap_encryptionsupported),
+                    'ap_dataencryptionstatus': int(ap_dataencryptionstatus),
+                    'ap_adminstatus': int(ap_adminstatus),
+
+                    'ap_assoccount': int(ap_assoccount) if ap_assoccount.isdigit() else None,
+                    'ap_associatedclientcount': int(ap_associatedclientcount) if ap_associatedclientcount.isdigit() else None,
+                    'ap_maxclientlimitnumbertrap': int(ap_maxclientlimitnumbertrap) if ap_maxclientlimitnumbertrap.isdigit() else None,
+                    'ap_reassocsucccount': int(ap_reassocsucccount) if ap_reassocsucccount.isdigit() else None,
+                    'ap_reassocfailcount': int(ap_reassocfailcount) if ap_reassocfailcount.isdigit() else None,
+                    'ap_activeclientcount': int(ap_activeclientcount) if ap_activeclientcount.isdigit() else None,
+                    'ap_assocfailcountforrssilow': int(ap_assocfailcountforrssilow) if ap_assocfailcountforrssilow.isdigit() else None,
+                    'ap_assocfailtimes': int(ap_assocfailtimes) if ap_assocfailtimes.isdigit() else None,
+                    'ap_echorequestcount': int(ap_echorequestcount) if ap_echorequestcount.isdigit() else None,
+                    'ap_echoresponselosscount': int(ap_echoresponselosscount) if ap_echoresponselosscount.isdigit() else None,
+                }
         return lwapap_info
 
     if len(info) != 0:
@@ -205,7 +206,9 @@ def check_cisco_wlc(item, params, parsed):
         else:
             ap_uptime = 'unknown'
 
-        infotext = 'up since: %s, clients: %s' % (ap_uptime, ap.get('ap_activeclientcount', 'unknown'))
+        infotext = 'up since: %s' % ap_uptime
+        if ap.get('ap_activeclientcount'):
+            infotext += ', clients: %s' % ap.get('ap_activeclientcount', 'unknown')
 
         longoutput = '\nBase data:'
         longoutput += '\n - IP address: %s' % ap.get('ap_ipaddress')
@@ -262,7 +265,7 @@ def check_cisco_wlc(item, params, parsed):
             if not params.get('ignore_ap_powerstatus'):
                 yield 2, 'Not on full power'
 
-        if ap.get('cdp_neigh_duplex', 3) == 3:
+        if ap.get('cdp_neigh_duplex', None) == 3:
             longoutput += '\n - CPD duplex state is half duplex (check network connection).'
             if not params.get('ignore_cdp_duplex'):
                 yield 2, 'CDP state is half duplex'
@@ -336,7 +339,8 @@ check_info['cisco_wlc'] = {
     'has_perfdata': True,
     'default_levels_variable': 'cisco_wlc_defaults',
     'parse_function': parse_cisco_wlc,
-    'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0') == 'Cisco Controller',
+    'snmp_scan_function': lambda oid: oid('.1.3.6.1.2.1.1.1.0') == 'Cisco Controller' or
+                                      oid('.1.3.6.1.2.1.1.1.0').lower().find('c9800_iosxe') != -1,
     'snmp_info': [('.1.3.6.1.4.1.14179.2.2.1.1', [  # AIRESPACE-WIRELESS-MIB::bsnAPEntry
                     OID_END,
                     '3',   # 1 bsnAPName
diff --git a/cisco_wlc.mkp b/cisco_wlc.mkp
index d7f14cea69fa22cf395ab74fd739333bd4647f4d..e8806f3d6c2eb8bbb247f322b4600b87e7799a6f 100644
GIT binary patch
literal 6820
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

literal 6777
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
T|33vWyit)BPko2`4F~rh`>;_0

diff --git a/packages/cisco_wlc b/packages/cisco_wlc
index fffcb65..a9a5e28 100644
--- a/packages/cisco_wlc
+++ b/packages/cisco_wlc
@@ -1,21 +1,13 @@
-{'author': 'Th.L. (thl-cmk[at]outlook[dot]com)',
- 'description': 'Monitors Cisco WLC APs. \nservice checks for:\n - missing APs\n - ssh/telnet enabled\n - encryption disabled\n - not on full PoE\n - admin/operational state\nPerfdata: Clientcount, clientfail, uptime, ...',
+{'author': u'Th.L. (thl-cmk[at]outlook[dot]com)',
+ 'description': u'Monitors Cisco WLC APs. \nservice checks for:\n - missing APs\n - ssh/telnet enabled\n - encryption disabled\n - not on full PoE\n - admin/operational state\nPerfdata: Clientcount, clientfail, uptime, ...\n\n',
  'download_url': 'http://thl-cmk.hopto.org',
- 'files': {'agents': [],
-           'bin': [],
-           'checkman': [],
-           'checks': ['cisco_wlc'],
-           'doc': [],
-           'inventory': [],
-           'lib': [],
-           'notifications': [],
-           'pnp-templates': [],
+ 'files': {'checks': ['cisco_wlc'],
            'web': ['plugins/wato/cisco_wlc.py',
                    'plugins/metrics/cisco_wlc.py']},
  'name': 'cisco_wlc',
  'num_files': 3,
- 'title': 'monitor Cisco WLC APs',
- 'version': '20180914.v04c',
+ 'title': u'monitor Cisco WLC APs',
+ 'version': '20211029.v04d',
  'version.min_required': '1.2.8b8',
- 'version.packaged': '1.4.0p38',
+ 'version.packaged': '1.6.0p25',
  'version.usable_until': None}
\ No newline at end of file
-- 
GitLab