|
@@ -1,48 +0,0 @@
|
|
-#!/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,
|
|
|
|
-)
|
|
|
|
-
|
|
|