diff --git a/README.md b/README.md index 94537509cbcb906392bf7289fb5726e6bfeb3a95..ee58ae56030d3f7077c359293563ed8b0a67c670 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/cisco_meraki-1.3.2-20240630.mkp "cisco_meraki-1.3.2-20240630.mkp" +[PACKAGE]: ../../raw/master/mkp/cisco_meraki-1.3.3-20240716.mkp "cisco_meraki-1.3.3-20240716.mkp" [SDK]: ../../raw/master/mkp/MerakiSDK-1.46.0-20240516.mkp "MerakiSDK-1.46.0-20240516.mkpp" # Cisco Meraki special agent diff --git a/mkp/cisco_meraki-1.3.3-20240716.mkp b/mkp/cisco_meraki-1.3.3-20240716.mkp new file mode 100644 index 0000000000000000000000000000000000000000..3b335fa1898615782a86812aa8c1d5c2d1a6fd85 Binary files /dev/null and b/mkp/cisco_meraki-1.3.3-20240716.mkp differ diff --git a/source/cmk_addons_plugins/meraki/agent_based/wireless_device_ssid_status.py b/source/cmk_addons_plugins/meraki/agent_based/wireless_device_ssid_status.py index 16b03451be45fb0311b8923929265eb0a2eb974c..429671a7bff852f6d322b25d7c5f527456dfacf7 100644 --- a/source/cmk_addons_plugins/meraki/agent_based/wireless_device_ssid_status.py +++ b/source/cmk_addons_plugins/meraki/agent_based/wireless_device_ssid_status.py @@ -12,7 +12,7 @@ # 2024-06-23: fixed crash on empty json_data # moved data parsing in to SSID class # 2024-06-30: renamed from cisco_meraki_org_wireless_device_status.py int to wireless_device_ssid_status.py - +# 2024-07-13: fixed crash on missing metrics (device dormant) ThX to Leon Buhleier from collections.abc import Mapping from dataclasses import dataclass @@ -116,11 +116,26 @@ def check_wireless_device_status( yield Result(state=State.OK, notice=f'BSSID: {ssid.bssid}') yield Result(state=State.OK, notice=f'Band: {ssid.band}') yield Result(state=State.OK, summary=f'Channel: {ssid.channel}') - yield Metric(name='channel', value=ssid.channel) yield Result(state=State.OK, summary=f'Channel width: {ssid.channel_width}') - yield Metric(name='channel_width', value=int(ssid.channel_width.split(' ')[0]) * 1000000) # change MHz -> Hz yield Result(state=State.OK, summary=f'Power: {ssid.power}') - yield Metric(name='signal_power', value=int(ssid.power.split(' ')[0])) + + try: + channel_width = int(ssid.channel_width.split(' ')[0]) * 1000000 # change MHz -> Hz + except AttributeError: + channel_width = None + + try: + power = int(ssid.power.split(' ')[0]) + except AttributeError: + power = None + + for metric, value in [ + ('channel', ssid.channel), + ('channel_width', channel_width), + ('signal_power', power) + ]: + if value is not None: + yield Metric(name=metric, value=value) check_plugin_cisco_meraki_org_wireless_device_status = CheckPlugin( diff --git a/source/packages/cisco_meraki b/source/packages/cisco_meraki index 3cc0795c2351c49b8c1c1b3e9c92a867c0aab007..dc6aecc4b8442630ed4580635d697c6c4d08fe62 100644 --- a/source/packages/cisco_meraki +++ b/source/packages/cisco_meraki @@ -63,7 +63,7 @@ 'web': ['plugins/views/cisco_meraki.py']}, 'name': 'cisco_meraki', 'title': 'Cisco Meraki special agent', - 'version': '1.3.2-20240630', + 'version': '1.3.3-20240716', 'version.min_required': '2.3.0b1', 'version.packaged': 'cmk-mkp-tool 0.2.0', 'version.usable_until': '2.4.0b1'}