@@ -382,6 +382,18 @@ def _chunk_send(self, metrics):
382
382
"""
383
383
messages = self ._create_messages (metrics )
384
384
request = self ._create_request (messages )
385
+
386
+ return self ._send_request (request )
387
+
388
+ def _send_request (self , request ):
389
+ """Send the formated zabbix request to zabbix server.
390
+
391
+ :type request: str
392
+ :param request: formatted zabbix request
393
+
394
+ :rtype: str
395
+ :return: Response from Zabbix Server
396
+ """
385
397
packet = self ._create_packet (request )
386
398
387
399
for host_addr in self .zabbix_uri :
@@ -435,3 +447,22 @@ def send(self, metrics):
435
447
for m in range (0 , len (metrics ), self .chunk_size ):
436
448
result .parse (self ._chunk_send (metrics [m :m + self .chunk_size ]))
437
449
return result
450
+
451
+ def get_active_checks (self , host ):
452
+ """Send a request to retrieve active checks
453
+
454
+ Format of returned items:
455
+ {'key': 'KEYITEM', 'delay': 30, 'lastlogsize': 0, 'mtime': 0}
456
+
457
+ :type host: string
458
+ :param host: host name to retrive active checks
459
+
460
+ :rtype: list
461
+ :return: List of active checks
462
+ """
463
+ request = '{{"request":"active checks","host":"{host}"}}' .format (host = host )
464
+ request = request .encode ("utf-8" )
465
+ logger .debug ('Request: %s' , request )
466
+
467
+ response = self ._send_request (request )
468
+ return response .get ("data" )
0 commit comments