From f1e3476aeaace28ece01ae96fee77b5fdfb617e1 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Fri, 16 Jun 2023 16:41:35 +0200
Subject: [PATCH] update project

---
 agent_based/inv_cisco_wlc_clients.py          |  90 ++++++++--------
 gui/views/inv_cisco_wlc_clients.py            |  18 ++--
 .../check_parameters/inv_cisco_wlc_clients.py | 102 ++++++++++++++++++
 inv_cisco_wlc_clients-0.5.0-20230616.mkp      | Bin 0 -> 5534 bytes
 inv_cisco_wlc_clients.mkp                     | Bin 5489 -> 5534 bytes
 packages/inv_cisco_wlc_clients                |   8 +-
 6 files changed, 162 insertions(+), 56 deletions(-)
 create mode 100644 gui/wato/check_parameters/inv_cisco_wlc_clients.py
 create mode 100644 inv_cisco_wlc_clients-0.5.0-20230616.mkp

diff --git a/agent_based/inv_cisco_wlc_clients.py b/agent_based/inv_cisco_wlc_clients.py
index 3794c86..8d41506 100644
--- a/agent_based/inv_cisco_wlc_clients.py
+++ b/agent_based/inv_cisco_wlc_clients.py
@@ -211,51 +211,51 @@ def parse_inv_cisco_wlc_clients(string_table: StringTable):
         client = {}
         client['status_columns'] = {}
         client['index'] = index
-        client['status_columns']['username'] = username
-        client['status_columns']['wlanprofilename'] = wlanprofilename
-        client['status_columns']['ipaddress'] = ipaddress
-        client['status_columns']['quarantinevlan'] = quarantinevlan
-        client['status_columns']['accessvlan'] = accessvlan
-        client['status_columns']['logintime'] = logintime
-        client['status_columns']['uptime'] = uptime
-        client['status_columns']['currenttxrateset'] = currenttxrateset
-        client['status_columns']['datarateset'] = datarateset
-        client['status_columns']['aclname'] = aclname
-        client['status_columns']['redirecturl'] = redirecturl
-        client['status_columns']['aaaoverrideaclname'] = aaaoverrideaclname
-        client['status_columns']['ssid'] = ssid
-        client['status_columns']['securitytagid'] = securitytagid
-        client['status_columns']['ipv6aclname'] = ipv6aclname
-        client['status_columns']['channel'] = channel
-        client['status_columns']['sessionid'] = sessionid
-        client['status_columns']['mdnsprofile'] = mdnsprofile
-        client['status_columns']['mdnsadvcount'] = mdnsadvcount
-        client['status_columns']['policyname'] = policyname
-        client['status_columns']['aaarole'] = aaarole
-        client['status_columns']['devicetype'] = devicetype
-        client['status_columns']['macaddress'] = _render_mac_address(macaddress)
-        client['status_columns']['apmacaddress'] = _render_mac_address(apmacaddress)
-        client['status_columns']['aproammacaddress'] = _render_mac_address(aproammacaddress)
-        client['status_columns']['wgbmacaddress'] = _render_mac_address(wgbmacaddress)
-        client['status_columns']['ieee80211ucapable'] = _enable_disable.get(ieee80211ucapable)
-        client['status_columns']['posturestate'] = _enable_disable.get(posturestate)
-        client['status_columns']['typekts'] = _enable_disable.get(typekts)
-        client['status_columns']['aclapplied'] = _isaclapplied.get(aclapplied)
-        client['status_columns']['aaaoverrideaclapplied'] = _isaclapplied.get(aaaoverrideaclapplied)
-        client['status_columns']['ipv6aclapplied'] = _isaclapplied.get(ipv6aclapplied)
-        client['status_columns']['status'] = _clientstatus.get(status)
-        client['status_columns']['wgbstatus'] = _wgbstatus.get(wgbstatus)
-        client['status_columns']['protocol'] = _protocol.get(protocol)
-        client['status_columns']['associationmode'] = _associationmode.get(associationmode)
-        client['status_columns']['iftype'] = _interfacetype.get(iftype)
-        client['status_columns']['nacstate'] = _nacstate.get(nacstate)
-        client['status_columns']['powersavemode'] = _powersavemode.get(powersavemode)
-        client['status_columns']['hreapapauth'] = _hreapapauth.get(hreapapauth)
-        client['status_columns']['dataswitching'] = _dataswitching.get(dataswitching)
-        client['status_columns']['authentication'] = _authentication.get(authentication)
-        client['status_columns']['authmode'] = _authmode.get(authmode)
-        client['status_columns']['reasoncode'] = _reasoncode.get(reasoncode)
-        client['status_columns']['userauthtype'] = _userauthtype.get(userauthtype)
+        client['username'] = username
+        client['wlanprofilename'] = wlanprofilename
+        client['ipaddress'] = ipaddress
+        client['quarantinevlan'] = quarantinevlan
+        client['accessvlan'] = accessvlan
+        client['logintime'] = logintime
+        client['uptime'] = uptime
+        client['currenttxrateset'] = currenttxrateset
+        client['datarateset'] = datarateset
+        client['aclname'] = aclname
+        client['redirecturl'] = redirecturl
+        client['aaaoverrideaclname'] = aaaoverrideaclname
+        client['ssid'] = ssid
+        client['securitytagid'] = securitytagid
+        client['ipv6aclname'] = ipv6aclname
+        client['channel'] = channel
+        client['sessionid'] = sessionid
+        client['mdnsprofile'] = mdnsprofile
+        client['mdnsadvcount'] = mdnsadvcount
+        client['policyname'] = policyname
+        client['aaarole'] = aaarole
+        client['devicetype'] = devicetype
+        client['macaddress'] = _render_mac_address(macaddress)
+        client['apmacaddress'] = _render_mac_address(apmacaddress)
+        client['aproammacaddress'] = _render_mac_address(aproammacaddress)
+        client['wgbmacaddress'] = _render_mac_address(wgbmacaddress)
+        client['ieee80211ucapable'] = _enable_disable.get(ieee80211ucapable)
+        client['posturestate'] = _enable_disable.get(posturestate)
+        client['typekts'] = _enable_disable.get(typekts)
+        client['aclapplied'] = _isaclapplied.get(aclapplied)
+        client['aaaoverrideaclapplied'] = _isaclapplied.get(aaaoverrideaclapplied)
+        client['ipv6aclapplied'] = _isaclapplied.get(ipv6aclapplied)
+        client['status'] = _clientstatus.get(status)
+        client['wgbstatus'] = _wgbstatus.get(wgbstatus)
+        client['protocol'] = _protocol.get(protocol)
+        client['associationmode'] = _associationmode.get(associationmode)
+        client['iftype'] = _interfacetype.get(iftype)
+        client['nacstate'] = _nacstate.get(nacstate)
+        client['powersavemode'] = _powersavemode.get(powersavemode)
+        client['hreapapauth'] = _hreapapauth.get(hreapapauth)
+        client['dataswitching'] = _dataswitching.get(dataswitching)
+        client['authentication'] = _authentication.get(authentication)
+        client['authmode'] = _authmode.get(authmode)
+        client['reasoncode'] = _reasoncode.get(reasoncode)
+        client['userauthtype'] = _userauthtype.get(userauthtype)
 
         clients.append(client)
     return clients
diff --git a/gui/views/inv_cisco_wlc_clients.py b/gui/views/inv_cisco_wlc_clients.py
index 4ef9c43..b3610e4 100644
--- a/gui/views/inv_cisco_wlc_clients.py
+++ b/gui/views/inv_cisco_wlc_clients.py
@@ -1,11 +1,17 @@
-#!/usr/bin/env python3
+# !/usr/bin/env python3
 # -*- coding: utf-8 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2016-04-08
+
+# 2023-06-14: removed declare_invtable_view from view definition on cmk 2.2 (see werk 15493)
+#             changed inventory_displayhints import (see werk 15493)
 
-from cmk.gui.plugins.views.utils import (
-    inventory_displayhints,
-)
 from cmk.gui.i18n import _
-from cmk.gui.plugins.views.inventory import declare_invtable_view
+from cmk.gui.views.inventory.registry import inventory_displayhints
 
 inventory_displayhints.update({
     '.networking.wlan.controller.clients:': {
@@ -64,5 +70,3 @@ inventory_displayhints.update({
     '.networking.wlan.controller.clients:*.aaarole': {'title': _('AAA role'), },
     '.networking.wlan.controller.clients:*.userauthtype': {'title': _('User auth type'), },
 })
-
-declare_invtable_view('invwlcclients', '.networking.wlan.controller.clients:', _('WLC clients'), _('WLC clients'))
diff --git a/gui/wato/check_parameters/inv_cisco_wlc_clients.py b/gui/wato/check_parameters/inv_cisco_wlc_clients.py
new file mode 100644
index 0000000..5d3dc43
--- /dev/null
+++ b/gui/wato/check_parameters/inv_cisco_wlc_clients.py
@@ -0,0 +1,102 @@
+# !/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2016-04-08
+
+# 2023-06-14: moved wato file to check_parameters sub directory
+
+
+from cmk.gui.i18n import _
+from cmk.gui.plugins.wato.utils import (
+    HostRulespec,
+    rulespec_registry,
+)
+from cmk.gui.valuespec import (
+    Dictionary,
+    ListChoice,
+)
+
+from cmk.gui.plugins.wato.inventory import (
+    RulespecGroupInventory,
+)
+
+_removecolumns_cisco_wlc_clients = [
+    # 'index': {'title', 'Index'),
+    # 'username': {'title', 'Username'),
+    # 'uptime': {'title', 'Uptime'),
+    # 'ipaddress': {'title', 'IP address'),
+    # 'apmacaddress': {'title', 'AP MAC address'),
+    # 'ssid': {'title', 'SSID'),
+    # 'channel': {'title', 'Channel'),
+    # 'accessvlan': {'title', 'Access VLAN'),
+    # 'devicetype': {'title', 'Device type'),
+    # 'protocol': {'title', 'Protocol'),
+    # 'status': {'title', 'Status'),
+
+    ('ieee80211ucapable', '802.11u capable'),
+    ('aaaoverrideaclapplied', 'AAA overide ACL applied'),
+    ('aaaoverrideaclname', 'AAA overide ACL name'),
+    ('aaarole', 'AAA role'),
+    ('aclapplied', 'ACL applied'),
+    ('aclname', 'ACL name'),
+    ('aproammacaddress', 'AP roam MAC address'),
+    ('associationmode', 'Association mode'),
+    ('authentication', 'Authentication'),
+    ('authmode', 'Auth mode'),
+    ('currenttxrateset', 'Current TX rate (MBit/s)'),
+    ('datarateset', 'Data rate set'),
+    ('dataswitching', 'Data switching'),
+    ('hreapapauth', 'HREAP AP auth'),
+    ('iftype', 'Interface type'),
+    ('ipv6aclapplied', 'IPv6 ACL applied'),
+    ('ipv6aclname', 'IPv6 ACL name'),
+    ('logintime', 'Login time'),
+    ('macaddress', 'MAC Addresse'),
+    ('mdnsadvcount', 'mDNS adv count'),
+    ('mdnsprofile', 'mDNS profile'),
+    ('nacstate', 'NAC state'),
+    ('policyname', 'Policy name'),
+    ('posturestate', 'Posture state'),
+    ('powersavemode', 'Power save mode'),
+    ('quarantinevlan', 'Quarantine VLAN'),
+    ('reasoncode', 'Reason code'),
+    ('redirecturl', 'Redirect URL'),
+    ('securitytagid', 'Security tag ID'),
+    ('sessionid', 'Session ID'),
+    ('typekts', 'NEC KTS SIP client'),
+    ('userauthtype', 'User auth type'),
+    ('wgbmacaddress', 'WGB MAC address'),
+    ('wgbstatus', 'WGB status'),
+    ('wlanprofilename', 'WLAN profile name'),
+]
+
+
+def _valuespec_inv_cisco_wlc_clients():
+    return Dictionary(
+        title=_('Cisco WLC Clients'),
+        help=_('This inventory plugin collects all the client information from a Cisco Wireless LAN Controller. '
+               'To use this plugin you must also enable "Status data inventory" in a "Do hardware/software inventory" '
+               'rule.'),
+        elements=[
+            ('removecolumns',
+             ListChoice(
+                 title=_('list of columns to remove'),
+                 help=_('information to remove from inventory'),
+                 choices=_removecolumns_cisco_wlc_clients,
+                 default_value=[],
+             )),
+        ],
+    )
+
+
+rulespec_registry.register(
+    HostRulespec(
+        group=RulespecGroupInventory,
+        match_type='dict',
+        name='inv_parameters:inv_cisco_wlc_clients',
+        valuespec=_valuespec_inv_cisco_wlc_clients,
+    ))
diff --git a/inv_cisco_wlc_clients-0.5.0-20230616.mkp b/inv_cisco_wlc_clients-0.5.0-20230616.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..a0a60af2eafe3486d6bbc36b52caa1c448a78579
GIT binary patch
literal 5534
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

literal 0
HcmV?d00001

diff --git a/inv_cisco_wlc_clients.mkp b/inv_cisco_wlc_clients.mkp
index 6a0216ce8df188c1a23697fca4829adbacfebc82..a0a60af2eafe3486d6bbc36b52caa1c448a78579 100644
GIT binary patch
literal 5534
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

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

diff --git a/packages/inv_cisco_wlc_clients b/packages/inv_cisco_wlc_clients
index f578323..8295177 100644
--- a/packages/inv_cisco_wlc_clients
+++ b/packages/inv_cisco_wlc_clients
@@ -10,10 +10,10 @@
  'download_url': 'http://thl-cmk.hopto.org',
  'files': {'agent_based': ['inv_cisco_wlc_clients.py'],
            'gui': ['views/inv_cisco_wlc_clients.py',
-                   'wato/inv_cisco_wlc_clients.py']},
+                   'wato/check_parameters/inv_cisco_wlc_clients.py']},
  'name': 'inv_cisco_wlc_clients',
  'title': 'inventory of cisco WLC clients',
- 'version': '0.3.1-20230614',
- 'version.min_required': '2.1.0b1',
+ 'version': '0.5.0-20230616',
+ 'version.min_required': '2.2.0b1',
  'version.packaged': '2.2.0p2',
- 'version.usable_until': '2.2.0b1'}
+ 'version.usable_until': None}
-- 
GitLab