From 9cd74e7194b2acb94713fc5fa59877ed2a92e038 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 15 Sep 2024 21:38:48 +0200 Subject: [PATCH] update project --- README.md | 2 +- mkp/cisco_meraki-1.3.6-20240915.mkp | Bin 0 -> 42262 bytes .../wireless_device_ssid_status.py | 3 +- source/cmk_addons_plugins/meraki/lib/agent.py | 14 ++- source/cmk_plugins/cisco/rulesets/meraki.py | 80 +++++++++--------- .../server_side_calls/cisco_meraki.py | 4 +- source/packages/cisco_meraki | 2 +- 7 files changed, 58 insertions(+), 47 deletions(-) create mode 100644 mkp/cisco_meraki-1.3.6-20240915.mkp diff --git a/README.md b/README.md index 310af2a..d674201 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/cisco_meraki-1.3.5-20240807.mkp "cisco_meraki-1.3.5-20240807.mkp" +[PACKAGE]: ../../raw/master/mkp/cisco_meraki-1.3.6-20240915.mkp "cisco_meraki-1.3.6-20240915.mkp" [SDK]: ../../raw/master/mkp/MerakiSDK-1.46.0-20240912.mkp "MerakiSDK-1.46.0-20240516.mkpp" # Cisco Meraki special agent diff --git a/mkp/cisco_meraki-1.3.6-20240915.mkp b/mkp/cisco_meraki-1.3.6-20240915.mkp new file mode 100644 index 0000000000000000000000000000000000000000..786de1b3290149638c72f8a20f78ae57769add45 GIT binary patch literal 42262 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 RdmIPBwocpnfz?5Q{SRR}!Po!* literal 0 HcmV?d00001 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 04deeff..5b65d48 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 @@ -14,6 +14,7 @@ # 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 # 2024-08-07: fixed crash on missing power value (unit only) ThX to Leon Buhleier +# 2024-09-12: fixed missing SSID 0 ThX to Andreas Doehler from collections.abc import Mapping from dataclasses import dataclass @@ -71,7 +72,7 @@ def parse_wireless_device_status(string_table: StringTable) -> Mapping[str, SSID if row.get('ssidName') and row.get('ssidName', '').startswith('Unconfigured SSID'): continue # ignore unconfigured entry's - if not (ssid_number := row.get('ssidNumber')): + if (ssid_number := row.get('ssidNumber')) is None: continue item = str(ssid_number) + ' on band ' + row.get('band') diff --git a/source/cmk_addons_plugins/meraki/lib/agent.py b/source/cmk_addons_plugins/meraki/lib/agent.py index 860cc46..6f96d74 100644 --- a/source/cmk_addons_plugins/meraki/lib/agent.py +++ b/source/cmk_addons_plugins/meraki/lib/agent.py @@ -37,6 +37,8 @@ # 2024-05-20: made appliance uplinks usage user selectable # made API requests per org user selectable # 2024-06-23: added cache time per section -> not nice but should work. +# 2024-09-12: added version check for min. Meraki SDK version +# 2024-09-15: fixed MerakiGetOrganizationSwitchPortsStatusesBySwitch -> return only list of switches # ToDo: create inventory from Networks, is per organisation, not sure where/how to put this in the inventory # ToDo: list Connected Datacenters like Umbrella https://developer.cisco.com/meraki/api-v1/list-data-centers/ @@ -124,6 +126,8 @@ from cmk_addons.plugins.meraki.lib.utils import ( _SEC_CACHE_WIRELESS_ETHERNET_STATUSES, ) +_MERAKI_SDK_MIN_VERSION: Final = '1.46.0' + _LOGGER = getLogger("agent_cisco_meraki") _API_NAME_API: Final = "api" @@ -644,11 +648,11 @@ class MerakiGetOrganizationSwitchPortsStatusesBySwitch(MerakiSectionOrg): params=params, timeout=3, ) - return response.json() + return response.json()['items'] # return self._config.dashboard.organizations.getOrganizationDevices(self._org_id, total_pages='all') except RequestException as e: _LOGGER.debug('Organisation ID: %r: Get Ports statuses by switch: %r', self._org_id, e) - return {} + return [] # @@ -1245,6 +1249,12 @@ def get_proxy(raw_proxy: str) -> str | None: def agent_cisco_meraki_main(args: Args) -> int: + if meraki.__version__ < _MERAKI_SDK_MIN_VERSION: + print( + f'This Agent needs at least Meraki SDK version {_MERAKI_SDK_MIN_VERSION}, installed is {meraki.__version__}' + ) + exit(1) + # don't remove used for runtime logging at the end start_time = time_ns() config = MerakiConfig( diff --git a/source/cmk_plugins/cisco/rulesets/meraki.py b/source/cmk_plugins/cisco/rulesets/meraki.py index 95fc8b3..244c40b 100644 --- a/source/cmk_plugins/cisco/rulesets/meraki.py +++ b/source/cmk_plugins/cisco/rulesets/meraki.py @@ -162,47 +162,46 @@ def _form_special_agent_cisco_meraki() -> Dictionary: 'sort the host in organisation specific folders.' ) )), - - "excluded_sections": DictElement( - parameter_form=MultipleChoice( - title=Title("Exclude Sections"), - elements=[ - MultipleChoiceElement(name=_SEC_NAME_ORG_API_REQUESTS, - title=Title(_SEC_TITLE_ORG_API_REQUESTS)), - MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_UPLINKS, - title=Title(_SEC_TITLE_APPLIANCE_UPLINKS)), - MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_UPLINKS_USAGE, - title=Title(_SEC_TITLE_APPLIANCE_UPLINKS_USAGE)), - MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_VPNS, title=Title(_SEC_TITLE_APPLIANCE_VPNS)), - MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_PERFORMANCE, - title=Title(_SEC_TITLE_APPLIANCE_PERFORMANCE)), - MultipleChoiceElement(name=_SEC_NAME_CELLULAR_UPLINKS, - title=Title(_SEC_TITLE_CELLULAR_UPLINKS)), - MultipleChoiceElement(name=_SEC_NAME_DEVICE_STATUSES, title=Title(_SEC_TITLE_DEVICE_STATUSES)), - MultipleChoiceElement(name=_SEC_NAME_DEVICE_UPLINKS_INFO, - title=Title(_SEC_TITLE_DEVICE_UPLINKS_INFO)), - MultipleChoiceElement(name=_SEC_NAME_LICENSES_OVERVIEW, - title=Title(_SEC_TITLE_LICENSES_OVERVIEW)), - MultipleChoiceElement(name=_SEC_NAME_SENSOR_READINGS, title=Title(_SEC_TITLE_SENSOR_READINGS)), - MultipleChoiceElement(name=_SEC_NAME_SWITCH_PORTS_STATUSES, - title=Title(_SEC_TITLE_SWITCH_PORTS_STATUSES)), - MultipleChoiceElement(name=_SEC_NAME_WIRELESS_ETHERNET_STATUSES, - title=Title(_SEC_TITLE_WIRELESS_ETHERNET_STATUSES)), - MultipleChoiceElement(name=_SEC_NAME_WIRELESS_DEVICE_STATUS, - title=Title(_SEC_TITLE_WIRELESS_DEVICE_STATUS)), - MultipleChoiceElement(name=_SEC_NAME_ORG_SWITCH_PORTS_STATUSES, - title=Title(_SEC_TITLE_ORG_SWITCH_PORTS_STATUSES)), - ], - prefill=DefaultValue([ - _SEC_NAME_APPLIANCE_PERFORMANCE, - _SEC_NAME_SWITCH_PORTS_STATUSES, - _SEC_NAME_WIRELESS_DEVICE_STATUS, - _SEC_NAME_ORG_SWITCH_PORTS_STATUSES, - ]), - # migrate=_migrate_to_valid_ident, + "excluded_sections": DictElement( + parameter_form=MultipleChoice( + title=Title("Exclude Sections"), + elements=[ + MultipleChoiceElement(name=_SEC_NAME_ORG_API_REQUESTS, + title=Title(_SEC_TITLE_ORG_API_REQUESTS)), + MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_UPLINKS, + title=Title(_SEC_TITLE_APPLIANCE_UPLINKS)), + MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_UPLINKS_USAGE, + title=Title(_SEC_TITLE_APPLIANCE_UPLINKS_USAGE)), + MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_VPNS, title=Title(_SEC_TITLE_APPLIANCE_VPNS)), + MultipleChoiceElement(name=_SEC_NAME_APPLIANCE_PERFORMANCE, + title=Title(_SEC_TITLE_APPLIANCE_PERFORMANCE)), + MultipleChoiceElement(name=_SEC_NAME_CELLULAR_UPLINKS, + title=Title(_SEC_TITLE_CELLULAR_UPLINKS)), + MultipleChoiceElement(name=_SEC_NAME_DEVICE_STATUSES, title=Title(_SEC_TITLE_DEVICE_STATUSES)), + MultipleChoiceElement(name=_SEC_NAME_DEVICE_UPLINKS_INFO, + title=Title(_SEC_TITLE_DEVICE_UPLINKS_INFO)), + MultipleChoiceElement(name=_SEC_NAME_LICENSES_OVERVIEW, + title=Title(_SEC_TITLE_LICENSES_OVERVIEW)), + MultipleChoiceElement(name=_SEC_NAME_SENSOR_READINGS, title=Title(_SEC_TITLE_SENSOR_READINGS)), + MultipleChoiceElement(name=_SEC_NAME_SWITCH_PORTS_STATUSES, + title=Title(_SEC_TITLE_SWITCH_PORTS_STATUSES)), + MultipleChoiceElement(name=_SEC_NAME_WIRELESS_ETHERNET_STATUSES, + title=Title(_SEC_TITLE_WIRELESS_ETHERNET_STATUSES)), + MultipleChoiceElement(name=_SEC_NAME_WIRELESS_DEVICE_STATUS, + title=Title(_SEC_TITLE_WIRELESS_DEVICE_STATUS)), + MultipleChoiceElement(name=_SEC_NAME_ORG_SWITCH_PORTS_STATUSES, + title=Title(_SEC_TITLE_ORG_SWITCH_PORTS_STATUSES)), + ], + prefill=DefaultValue([ + _SEC_NAME_APPLIANCE_PERFORMANCE, + _SEC_NAME_SWITCH_PORTS_STATUSES, + _SEC_NAME_WIRELESS_DEVICE_STATUS, + _SEC_NAME_ORG_SWITCH_PORTS_STATUSES, + ]), + # migrate=_migrate_to_valid_ident, + ), + required=True, ), - required=True, - ), "orgs": DictElement( parameter_form=List( element_template=String(macro_support=True), title=Title("Organizations"), @@ -261,6 +260,7 @@ def _form_special_agent_cisco_meraki() -> Dictionary: render_only=True, ), }, + # prefill=DefaultValue('excluded_sections'), ) diff --git a/source/cmk_plugins/collection/server_side_calls/cisco_meraki.py b/source/cmk_plugins/collection/server_side_calls/cisco_meraki.py index 4f772f3..9e91fac 100644 --- a/source/cmk_plugins/collection/server_side_calls/cisco_meraki.py +++ b/source/cmk_plugins/collection/server_side_calls/cisco_meraki.py @@ -115,11 +115,11 @@ def agent_cisco_meraki_arguments( args.append("--sections") args += [s.replace("_", "-") for s in params.sections] - if params.excluded_sections is not None: + if params.excluded_sections: args.append("--excluded-sections") args += [s.replace("_", "-") for s in params.excluded_sections] - if params.orgs is not None: + if params.orgs: args.append("--orgs") args += [replace_macros(org, host_config.macros) for org in params.orgs] diff --git a/source/packages/cisco_meraki b/source/packages/cisco_meraki index 7e17935..08abc81 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.5-20240807', + 'version': '1.3.6-20240915', 'version.min_required': '2.3.0b1', 'version.packaged': 'cmk-mkp-tool 0.2.0', 'version.usable_until': '2.4.0b1'} -- GitLab