diff --git a/agent_based/inv_cisco_wlc_clients.py b/agent_based/inv_cisco_wlc_clients.py index 11b58dfa6ed17fd616fade77997f536e1abccbdf..c208d2c39927b8b814d3911d9ffa84f458ce81b4 100644 --- a/agent_based/inv_cisco_wlc_clients.py +++ b/agent_based/inv_cisco_wlc_clients.py @@ -37,164 +37,171 @@ from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( ) _enable_disable = { - 0: 'N/A', - 1: 'enabled', - 2: 'disabled', + '0': 'N/A', + '1': 'enabled', + '2': 'disabled', } _isaclapplied = { - 0: 'n/a', - 1: 'true', - 2: 'false', - 3: 'notavailable', + '0': 'n/a', + '1': 'true', + '2': 'false', + '3': 'notavailable', } _associationmode = { - 0: 'n/a', - 1: 'unknown', - 2: 'wep', - 3: 'wpa', - 4: 'wpa2', + '0': 'n/a', + '1': 'unknown', + '2': 'wep', + '3': 'wpa', + '4': 'wpa2', } _authmode = { - 0: 'none', - 1: 'psk', - 2: 'radius', - 3: 'cckm', - 4: 'wapipsk', - 5: 'wapicert', - 6: 'ftdot1x', - 7: 'ftpsk', - 8: 'pmfdot1x', - 9: 'pmfpsk', + '0': 'none', + '1': 'psk', + '2': 'radius', + '3': 'cckm', + '4': 'wapipsk', + '5': 'wapicert', + '6': 'ftdot1x', + '7': 'ftpsk', + '8': 'pmfdot1x', + '9': 'pmfpsk', } _reasoncode = { - 0: 'n/a', - 1: 'unspecified', - 2: 'previousauthnotvalid', - 3: 'deauthenticationleaving', - 4: 'disassociationduetoinactivity', - 5: 'disassociationapbusy', - 6: 'class2framefromnonauthstation', - 7: 'class2framefromnonassstation', - 8: 'disassociationstahasleft', - 9: 'stareqassociationwithoutauth', - 10: 'invalidinformationelement', - 11: 'groupcipherinvalid', - 12: 'unicastcipherinvalid', - 13: 'akmpinvalid', - 14: 'unsupportedrsnversion', - 15: 'invalidrsniecapabilities', - 16: 'ciphersuiterejected', - 17: 'missingreasoncode', - 18: 'maxassociatedclientsreached', - 19: 'maxassociatedclientsreachedonradio', - 20: 'maxassociatedclientsreachedonwlan', - 21: 'unspecifiedqosfailure', - 22: 'qospolicymismatch', - 23: 'insufficientbandwidth', - 24: 'invalidqosparams', + '0': 'n/a', + '1': 'unspecified', + '2': 'previousauthnotvalid', + '3': 'deauthenticationleaving', + '4': 'disassociationduetoinactivity', + '5': 'disassociationapbusy', + '6': 'class2framefromnonauthstation', + '7': 'class2framefromnonassstation', + '8': 'disassociationstahasleft', + '9': 'stareqassociationwithoutauth', + '10': 'invalidinformationelement', + '11': 'groupcipherinvalid', + '12': 'unicastcipherinvalid', + '13': 'akmpinvalid', + '14': 'unsupportedrsnversion', + '15': 'invalidrsniecapabilities', + '16': 'ciphersuiterejected', + '17': 'missingreasoncode', + '18': 'maxassociatedclientsreached', + '19': 'maxassociatedclientsreachedonradio', + '20': 'maxassociatedclientsreachedonwlan', + '21': 'unspecifiedqosfailure', + '22': 'qospolicymismatch', + '23': 'insufficientbandwidth', + '24': 'invalidqosparams', } _authentication = { - 0: 'n/a', - 1: 'unknown', - 2: 'central', - 3: 'local', + '0': 'n/a', + '1': 'unknown', + '2': 'central', + '3': 'local', } _dataswitching = { - 0: 'n/a', - 1: 'unknown', - 2: 'central', - 3: 'local', + '0': 'n/a', + '1': 'unknown', + '2': 'central', + '3': 'local', } _hreapapauth = { - 0: 'n/a', - 1: 'true', - 2: 'false', - 3: 'notapplicable', + '0': 'n/a', + '1': 'true', + '2': 'false', + '3': 'notapplicable', } _nacstate = { - 0: 'n/a', - 1: 'quarantine', - 2: 'access', + '0': 'n/a', + '1': 'quarantine', + '2': 'access', } _protocol = { - 0: 'n/a', - 1: '802.11a', - 2: '802.11b', - 3: '802.11g', - 4: 'unknown', - 5: 'mobile', - 6: '802.11n 2,4Ghz', - 7: '802.11n 5GHz', - 8: 'ethernet', - 9: 'dot3', - 10: '802.11ac 5GHz' + '0': 'n/a', + '1': '802.11a', + '2': '802.11b', + '3': '802.11g', + '4': 'unknown', + '5': 'mobile', + '6': '802.11n 2,4Ghz', + '7': '802.11n 5GHz', + '8': 'ethernet', + '9': 'dot3', + '10': '802.11ac 5GHz' } _userauthtype = { - 0: 'n/a', - 1: 'open', - 2: 'wepPsk', - 3: 'portal', - 4: 'simPeap', - 5: 'other', + '0': 'n/a', + '1': 'open', + '2': 'wepPsk', + '3': 'portal', + '4': 'simPeap', + '5': 'other', } _wgbstatus = { - 0: 'n/a', - 1: 'wireless client', - 2: 'wireless client via WGB', - 3: 'WGB itself', + '0': 'n/a', + '1': 'wireless client', + '2': 'wireless client via WGB', + '3': 'WGB itself', } _clientstatus = { - 0: 'n/a', - 1: 'idle', - 2: 'aaa Pending', - 3: 'authenticated', - 4: 'associated', - 5: 'powersave', - 6: 'disassociated', - 7: 'to be deleted', - 8: 'probing', - 9: 'excluded', + '0': 'n/a', + '1': 'idle', + '2': 'aaa Pending', + '3': 'authenticated', + '4': 'associated', + '5': 'powersave', + '6': 'disassociated', + '7': 'to be deleted', + '8': 'probing', + '9': 'excluded', } _interfacetype = { - 0: 'n/a', - 1: '802.11bg', - 2: '802.11a', - 3: 'Ultra wideband', - 4: '802.11abgn', - 5: '802.11ac', - 6: '802.11b', - 7: '802.11g', - 8: '802.11n 2.4GHz', - 9: '802.11n 5GHz', - 10: 'unknown', + '0': 'n/a', + '1': '802.11bg', + '2': '802.11a', + '3': 'Ultra wideband', + '4': '802.11abgn', + '5': '802.11ac', + '6': '802.11b', + '7': '802.11g', + '8': '802.11n 2.4GHz', + '9': '802.11n 5GHz', + '10': 'unknown', } _powersavemode = { - 0: 'n/a', - 1: 'active', - 2: 'powersave', + '0': 'n/a', + '1': 'active', + '2': 'powersave', } def _render_mac_address(bytestring): - return ':'.join(['%02s' % hex(ord(m))[2:] for m in bytestring]).replace(' ', '0').upper() + macaddress = bytestring + bytestring = bytestring.replace('|4|', ' ').replace('|4.', ' ').replace('"', '').strip(' ').strip('.').replace(' ', ':').replace('.', ':') + + if len(bytestring) == 17: + return bytestring + else: + return ':'.join(['%02s' % hex(ord(m))[2:] for m in macaddress]).replace(' ', '0').upper() def parse_inv_cisco_wlc_clients(string_table: StringTable): clients = [] + index = 0 for client in string_table: macaddress, status, wlanprofilename, wgbstatus, wgbmacaddress, protocol, associationmode, \ @@ -205,56 +212,57 @@ def parse_inv_cisco_wlc_clients(string_table: StringTable): channel, authmode, reasoncode, sessionid, aproammacaddress, mdnsprofile, mdnsadvcount, \ policyname, aaarole, devicetype, userauthtype = client - clients.append({ - 'macaddress': _render_mac_address(macaddress), - 'username': username, - 'status_columns': { - 'status': _clientstatus.get(int(status)), - 'wlanprofilename': wlanprofilename, - 'wgbstatus': _wgbstatus.get(int(wgbstatus)), - 'wgbmacaddress': wgbmacaddress, - 'protocol': _protocol.get(int(protocol)), - 'associationmode': _associationmode.get(int(associationmode)), - 'apmacaddress': _render_mac_address(apmacaddress), - 'iftype': _interfacetype.get(int(iftype)), - 'ipaddress': ipaddress, - 'nacstate': _nacstate.get(int(nacstate)), - 'quarantinevlan': quarantinevlan, - 'accessvlan': accessvlan, - 'logintime': logintime, - 'uptime': uptime, - 'powersavemode': _powersavemode.get(int(powersavemode)), - 'currenttxrateset': currenttxrateset, - 'datarateset': datarateset, - 'hreapapauth': _hreapapauth.get(int(hreapapauth)), - 'ieee80211ucapable': _enable_disable.get(int(ieee80211ucapable)), - 'posturestate': _enable_disable.get(int(posturestate)), - 'aclname': aclname, - 'aclapplied': _isaclapplied.get(int(aclapplied)), - 'redirecturl': redirecturl, - 'aaaoverrideaclname': aaaoverrideaclname, - 'aaaoverrideaclapplied': _isaclapplied.get(int(aaaoverrideaclapplied)), - 'ssid': ssid, - 'securitytagid': securitytagid, - 'typekts': _enable_disable.get(int(typekts)), - 'ipv6aclname': ipv6aclname, - 'ipv6aclapplied': _isaclapplied.get(int(ipv6aclapplied)), - 'dataswitching': _dataswitching.get(int(dataswitching)), - 'authentication': _authentication.get(int(authentication)), - 'channel': channel, - 'authmode': _authmode.get(int(authmode)), - 'reasoncode': _reasoncode.get(int(reasoncode)), - 'sessionid': sessionid, - 'aproammacaddress': _render_mac_address(aproammacaddress), - 'mdnsprofile': mdnsprofile, - 'mdnsadvcount': mdnsadvcount, - 'policyname': policyname, - 'aaarole': aaarole, - 'devicetype': devicetype, - 'userauthtype': _userauthtype.get(int(userauthtype)), - }, - }) - + index += 1 + 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) + + clients.append(client) return clients @@ -267,7 +275,7 @@ def inventory_cisco_wlc_clients(params, section) -> InventoryResult: path = ['networking', 'wlan', 'controller', 'clients'] for client in section: - key_columns = {'username': client['username']} # 'macaddress': client['macaddress'], + key_columns = {'index': client['index']} for key in key_columns.keys(): client.pop(key) diff --git a/inv_cisco_wlc_clients.mkp b/inv_cisco_wlc_clients.mkp index 680098daad11aad5babacc8b20b0cd130f018d27..037368977b5eca07bc1c0e53aba57326ac588090 100644 Binary files a/inv_cisco_wlc_clients.mkp and b/inv_cisco_wlc_clients.mkp differ diff --git a/web/plugins/views/inv_cisco_wlc_clients.py b/web/plugins/views/inv_cisco_wlc_clients.py index b8796ed2549127792d4371201252b3584a154266..58ad25b3519d4fbdece134d26752ae5633f52a5b 100644 --- a/web/plugins/views/inv_cisco_wlc_clients.py +++ b/web/plugins/views/inv_cisco_wlc_clients.py @@ -3,68 +3,70 @@ import cmk.gui.utils from cmk.gui.plugins.views import ( - inventory_displayhints,) + inventory_displayhints, ) from cmk.gui.i18n import _ - inventory_displayhints.update({ - '.networking.wlan.controller.clients:': {'title' : _('WLC clients'), - 'keyorder': ['username', 'uptime', 'ipaddress', 'apmacaddress', 'ssid', - 'channel', 'accessvlan', 'devicetype', 'protocol', 'status', - ], - 'view' : 'invwlcclients_of_host'}, + '.networking.wlan.controller.clients:': {'title': _('WLC clients'), + 'keyorder': [ + 'index', 'test', 'username', 'uptime', 'ipaddress', 'apmacaddress', 'ssid', + 'channel', 'accessvlan', 'devicetype', 'protocol', 'status', + ], + 'view': 'invwlcclients_of_host'}, - '.networking.wlan.controller.clients:*.macaddress' : { 'title' : _('MAC Addresse'), }, - '.networking.wlan.controller.clients:*.status' : { 'title' : _('Status'), }, - '.networking.wlan.controller.clients:*.wlanprofilename' : { 'title' : _('WLAN profile name'), }, - '.networking.wlan.controller.clients:*.wgbstatus' : { 'title' : _('WGB status'), }, - '.networking.wlan.controller.clients:*.wgbmacaddress' : { 'title' : _('WGB MAC address'), }, - '.networking.wlan.controller.clients:*.protocol' : { 'title' : _('Protocol'), }, - '.networking.wlan.controller.clients:*.associationmode' : { 'title' : _('Association mode'), }, - '.networking.wlan.controller.clients:*.apmacaddress' : { 'title' : _('AP MAC address'), }, - '.networking.wlan.controller.clients:*.iftype' : { 'title' : _('Interface type'), }, - '.networking.wlan.controller.clients:*.ipaddress' : { 'title' : _('IP address'), }, - '.networking.wlan.controller.clients:*.nacstate' : { 'title' : _('NAC state'), }, - '.networking.wlan.controller.clients:*.quarantinevlan' : { 'title' : _('Quarantine VLAN'), }, - '.networking.wlan.controller.clients:*.accessvlan' : { 'title' : _('Access VLAN'), }, - '.networking.wlan.controller.clients:*.logintime' : { 'title' : _('Login time'), }, - '.networking.wlan.controller.clients:*.uptime' : { 'title' : _('Uptime'), }, - '.networking.wlan.controller.clients:*.powersavemode' : { 'title' : _('Power save mode'), }, - '.networking.wlan.controller.clients:*.currenttxrateset' : { 'title' : _('Current TX rate (MBit/s)'), }, - '.networking.wlan.controller.clients:*.datarateset' : { 'title' : _('Data rate set'), }, - '.networking.wlan.controller.clients:*.hreapapauth' : { 'title' : _('HREAP AP auth'), }, - '.networking.wlan.controller.clients:*.ieee80211ucapable' : { 'title' : _('802.11u capable'), }, - '.networking.wlan.controller.clients:*.posturestate' : { 'title' : _('Posture state'), }, - '.networking.wlan.controller.clients:*.aclname' : { 'title' : _('ACL name'), }, - '.networking.wlan.controller.clients:*.aclapplied' : { 'title' : _('ACL applied'), }, - '.networking.wlan.controller.clients:*.redirecturl' : { 'title' : _('Redirect URL'), }, - '.networking.wlan.controller.clients:*.aaaoverrideaclname' : { 'title' : _('AAA overide ACL name'), }, - '.networking.wlan.controller.clients:*.aaaoverrideaclapplied' : { 'title' : _('AAA overide ACL applied'), }, - '.networking.wlan.controller.clients:*.username' : { 'title' : _('Username'), }, - '.networking.wlan.controller.clients:*.ssid' : { 'title' : _('SSID'), }, - '.networking.wlan.controller.clients:*.securitytagid' : { 'title' : _('Security tag ID'), }, - '.networking.wlan.controller.clients:*.typekts' : { 'title' : _('NEC KTS SIP client'), }, - '.networking.wlan.controller.clients:*.ipv6aclname' : { 'title' : _('IPv6 ACL name'), }, - '.networking.wlan.controller.clients:*.ipv6aclapplied' : { 'title' : _('IPv6 ACL applied'), }, - '.networking.wlan.controller.clients:*.dataswitching' : { 'title' : _('Data switching'), }, - '.networking.wlan.controller.clients:*.authentication' : { 'title' : _('Authentication'), }, - '.networking.wlan.controller.clients:*.channel' : { 'title' : _('Channel'), }, - '.networking.wlan.controller.clients:*.authmode' : { 'title' : _('Auth mode'), }, - '.networking.wlan.controller.clients:*.reasoncode' : { 'title' : _('Reason code'), }, - '.networking.wlan.controller.clients:*.sessionid' : { 'title' : _('Session ID'), }, - '.networking.wlan.controller.clients:*.aproammacaddress' : { 'title' : _('AP roam MAC address'), }, - '.networking.wlan.controller.clients:*.mdnsprofile' : { 'title' : _('mDNS profile'), }, - '.networking.wlan.controller.clients:*.mdnsadvcount' : { 'title' : _('mDNS adv count'), }, - '.networking.wlan.controller.clients:*.policyname' : { 'title' : _('Policy name'), }, - '.networking.wlan.controller.clients:*.aaarole' : { 'title' : _('AAA role'), }, - '.networking.wlan.controller.clients:*.devicetype' : { 'title' : _('Device type'), }, - '.networking.wlan.controller.clients:*.userauthtype' : { 'title' : _('User auth type'), }, -# '.networking.wlan.controller.clients:*.certificate_type' : { 'title' : _('Certificate type'), 'short' : _('Cert type'), 'filter' : visuals.FilterInvtableWLCCertType, 'paint' : 'wlc_cert_type' }, + '.networking.wlan.controller.clients:*.index': {'title': _('Index'), }, + '.networking.wlan.controller.clients:*.test': {'title': _('Test'), }, + '.networking.wlan.controller.clients:*.macaddress': {'title': _('MAC Addresse'), }, + '.networking.wlan.controller.clients:*.status': {'title': _('Status'), }, + '.networking.wlan.controller.clients:*.wlanprofilename': {'title': _('WLAN profile name'), }, + '.networking.wlan.controller.clients:*.wgbstatus': {'title': _('WGB status'), }, + '.networking.wlan.controller.clients:*.wgbmacaddress': {'title': _('WGB MAC address'), }, + '.networking.wlan.controller.clients:*.protocol': {'title': _('Protocol'), }, + '.networking.wlan.controller.clients:*.associationmode': {'title': _('Association mode'), }, + '.networking.wlan.controller.clients:*.apmacaddress': {'title': _('AP MAC address'), }, + '.networking.wlan.controller.clients:*.iftype': {'title': _('Interface type'), }, + '.networking.wlan.controller.clients:*.ipaddress': {'title': _('IP address'), }, + '.networking.wlan.controller.clients:*.nacstate': {'title': _('NAC state'), }, + '.networking.wlan.controller.clients:*.quarantinevlan': {'title': _('Quarantine VLAN'), }, + '.networking.wlan.controller.clients:*.accessvlan': {'title': _('Access VLAN'), }, + '.networking.wlan.controller.clients:*.logintime': {'title': _('Login time'), }, + '.networking.wlan.controller.clients:*.uptime': {'title': _('Uptime'), }, + '.networking.wlan.controller.clients:*.powersavemode': {'title': _('Power save mode'), }, + '.networking.wlan.controller.clients:*.currenttxrateset': {'title': _('Current TX rate (MBit/s)'), }, + '.networking.wlan.controller.clients:*.datarateset': {'title': _('Data rate set'), }, + '.networking.wlan.controller.clients:*.hreapapauth': {'title': _('HREAP AP auth'), }, + '.networking.wlan.controller.clients:*.ieee80211ucapable': {'title': _('802.11u capable'), }, + '.networking.wlan.controller.clients:*.posturestate': {'title': _('Posture state'), }, + '.networking.wlan.controller.clients:*.aclname': {'title': _('ACL name'), }, + '.networking.wlan.controller.clients:*.aclapplied': {'title': _('ACL applied'), }, + '.networking.wlan.controller.clients:*.redirecturl': {'title': _('Redirect URL'), }, + '.networking.wlan.controller.clients:*.aaaoverrideaclname': {'title': _('AAA overide ACL name'), }, + '.networking.wlan.controller.clients:*.aaaoverrideaclapplied': {'title': _('AAA overide ACL applied'), }, + '.networking.wlan.controller.clients:*.username': {'title': _('Username'), }, + '.networking.wlan.controller.clients:*.ssid': {'title': _('SSID'), }, + '.networking.wlan.controller.clients:*.securitytagid': {'title': _('Security tag ID'), }, + '.networking.wlan.controller.clients:*.typekts': {'title': _('NEC KTS SIP client'), }, + '.networking.wlan.controller.clients:*.ipv6aclname': {'title': _('IPv6 ACL name'), }, + '.networking.wlan.controller.clients:*.ipv6aclapplied': {'title': _('IPv6 ACL applied'), }, + '.networking.wlan.controller.clients:*.dataswitching': {'title': _('Data switching'), }, + '.networking.wlan.controller.clients:*.authentication': {'title': _('Authentication'), }, + '.networking.wlan.controller.clients:*.channel': {'title': _('Channel'), }, + '.networking.wlan.controller.clients:*.authmode': {'title': _('Auth mode'), }, + '.networking.wlan.controller.clients:*.reasoncode': {'title': _('Reason code'), }, + '.networking.wlan.controller.clients:*.sessionid': {'title': _('Session ID'), }, + '.networking.wlan.controller.clients:*.aproammacaddress': {'title': _('AP roam MAC address'), }, + '.networking.wlan.controller.clients:*.mdnsprofile': {'title': _('mDNS profile'), }, + '.networking.wlan.controller.clients:*.mdnsadvcount': {'title': _('mDNS adv count'), }, + '.networking.wlan.controller.clients:*.policyname': {'title': _('Policy name'), }, + '.networking.wlan.controller.clients:*.aaarole': {'title': _('AAA role'), }, + '.networking.wlan.controller.clients:*.devicetype': {'title': _('Device type'), }, + '.networking.wlan.controller.clients:*.userauthtype': {'title': _('User auth type'), }, -}) + # '.networking.wlan.controller.clients:*.certificate_type' : { 'title' : _('Certificate type'), 'short' : _('Cert type'), 'filter' : visuals.FilterInvtableWLCCertType, 'paint' : 'wlc_cert_type' }, +}) from cmk.gui.plugins.views.inventory import declare_invtable_view -declare_invtable_view('invwlcclients', '.networking.wlan.controller.clients:', _('WLC clients'), _('WLC clients')) +declare_invtable_view('invwlcclients', '.networking.wlan.controller.clients:', _('WLC clients'), _('WLC clients')) diff --git a/web/plugins/wato/inv_cisco_wlc_clients.py b/web/plugins/wato/inv_cisco_wlc_clients.py index f56883dc12252782ea6853fe9a6c3ef3cd8aac12..7da5516d4dc74ac4f0a0884b902ac815473ed089 100644 --- a/web/plugins/wato/inv_cisco_wlc_clients.py +++ b/web/plugins/wato/inv_cisco_wlc_clients.py @@ -67,7 +67,10 @@ removecolumns = [ def _valuespec_inv_cisco_wlc_clients(): return Dictionary( - title=_('Cisco WLC Client inventory'), + 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(