Explorar o código

Update 'plugins/edirectory_monitor/agent_based/edirectory_monitor.py'

Michael Honkoop hai 4 meses
pai
achega
42fd2e23ab
Modificáronse 1 ficheiros con 15 adicións e 4 borrados
  1. 15 4
      plugins/edirectory_monitor/agent_based/edirectory_monitor.py

+ 15 - 4
plugins/edirectory_monitor/agent_based/edirectory_monitor.py

@@ -15,24 +15,35 @@ from cmk.agent_based.v2 import (
     State,
 )
 
-monitor_data= Dict[str, object]
-
 def parse_ldap_data(string_table):
     """parse one lines of data to dictionary"""
     parsed = {}
     for line in string_table:
         item = line[0]
+        #print(line[1:])
         parsed.setdefault(item, {})
         for _count, data in enumerate(line[1:]):
-            key, value = data.split("=")
+            if item == "Agent Partition":
+                continue
+            key, value=data.split("=")
             parsed[item].setdefault(key, value)
     return parsed
 
 def discover_edirectory_items(section) -> DiscoveryResult:
     '''discover one item per key'''
     for key, data in section.items():
+        #print(data)
         yield Service(item=key)
 
+def check_edirectory_items(item: str, section) -> CheckResult:
+    data = section.get(item)
+    if not data:
+        return
+    for key, value in data.items:
+        yield Result(state=State("0"), summary=f"{key}: {value}")
+
+    #yield Result(state=0, notice="empty", details="data")
+
 agent_section_edirectory_monitor = AgentSection(
     name="edirectory_monitor",
     parse_function=parse_ldap_data,
@@ -42,5 +53,5 @@ check_plugin_edirectory_monitor = CheckPlugin(
     name="edirectory_monitor",
     service_name="%s",
     discovery_function=discover_edirectory_items,
-    check_function=discover_edirectory_items,
+    check_function=check_edirectory_items,
 )