#!/usr/bin/env python3 # -*- encoding: utf-8; py-indent-offset: 4 -*- # License: GNU General Public License v2 from typing import Dict from cmk.agent_based.v2 import ( AgentSection, CheckPlugin, CheckResult, DiscoveryResult, Result, Service, State, ) monitor_data= Dict[str, object] def parse_ldap_data(string_table) -> monitor_data: """parse one lines of data to dictionary""" parsed = {} for line in string_table: item = line[0] parsed.setdefault(item, {}) for _count, data in enumerate(line[1:]): key, value = data.split("=") parsed[item].setdefault(key, value) return parsed def discover_edirectory_items(section: monitor_data) -> DiscoveryResult: '''discover one item per key''' for key, data in section.items(): yield Service(item=key) agent_section_edirectory_monitor = AgentSection( name="edirectory_monitor", parse_function=parse_ldap_data, ) check_plugin_edirectory_monitor = CheckPlugin( name="edirectory_monitor", service_name="%s", discovery_function=discover_edirectory_items, check_function=parse_ldap_data, )