Skip to content

Commit 99bee1d

Browse files
committed
New function to recover active checks
The new function get_active_checks() return a list of active items that a Zabbix Agent should execute.
1 parent 72ac80f commit 99bee1d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

pyzabbix/sender.py

+31
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,18 @@ def _chunk_send(self, metrics):
382382
"""
383383
messages = self._create_messages(metrics)
384384
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+
"""
385397
packet = self._create_packet(request)
386398

387399
for host_addr in self.zabbix_uri:
@@ -435,3 +447,22 @@ def send(self, metrics):
435447
for m in range(0, len(metrics), self.chunk_size):
436448
result.parse(self._chunk_send(metrics[m:m + self.chunk_size]))
437449
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

Comments
 (0)