123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/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,
- )
|