Collection of CheckMK checks (see https://checkmk.com/). All checks and plugins are provided as is. Absolutely no warranty. Send any comments to thl-cmk[at]outlook[dot]com

Skip to content
Snippets Groups Projects
Commit 9e7d86f0 authored by thl-cmk's avatar thl-cmk :flag_na:
Browse files

update project

parent 3bd83643
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
No preview for this file type
......@@ -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'))
......@@ -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(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment