From b3e95667515fd9f0da3f4d79fc8f3b58c731f445 Mon Sep 17 00:00:00 2001 From: Nikhil Mulley Date: Sun, 1 May 2016 05:23:52 -0700 Subject: [PATCH 1/4] support sending commands livestatus sockets can support scheduling external Nagios commands provide minimal support to send Nagios commands to livestatus socket --- mk_livestatus/livestatus.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/mk_livestatus/livestatus.py b/mk_livestatus/livestatus.py index 25ccdf9..2ae69f5 100644 --- a/mk_livestatus/livestatus.py +++ b/mk_livestatus/livestatus.py @@ -5,7 +5,7 @@ import socket import json - +import time __all__ = ['Query', 'Socket'] @@ -27,13 +27,20 @@ def call(self): __call__ = call def __str__(self): - request = 'GET %s' % (self._resource) - if self._columns and any(self._columns): - request += '\nColumns: %s' % (' '.join(self._columns)) - if self._filters: - for filter_line in self._filters: - request += '\nFilter: %s' % (filter_line) - request += '\nOutputFormat: json\nColumnHeaders: on\n' + print self._resource + if self._resource.upper() != 'SEND': + request = 'GET %s' % (self._resource) + if self._columns and any(self._columns): + request += '\nColumns: %s' % (' '.join(self._columns)) + if self._filters: + for filter_line in self._filters: + request += '\nFilter: %s' % (filter_line) + request += '\nOutputFormat: json\nColumnHeaders: on\n' + else: + timestamp = str(int(time.time())) + request = "COMMAND [{0}] {1}\n".format(timestamp, ' '.join(self._command).encode('utf-8')) + print request + return request def columns(self, *args): @@ -44,6 +51,9 @@ def filter(self, filter_str): self._filters.append(filter_str) return self + def command(self, command_str): + self._command.append(command_str) + return self class Socket(object): def __init__(self, peer): From bafa0d06c7430dc1fc607602c8b1564ae4bc002a Mon Sep 17 00:00:00 2001 From: Nikhil Mulley Date: Sun, 1 May 2016 05:24:43 -0700 Subject: [PATCH 2/4] Update livestatus.py --- mk_livestatus/livestatus.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mk_livestatus/livestatus.py b/mk_livestatus/livestatus.py index 2ae69f5..e4c42cb 100644 --- a/mk_livestatus/livestatus.py +++ b/mk_livestatus/livestatus.py @@ -27,7 +27,6 @@ def call(self): __call__ = call def __str__(self): - print self._resource if self._resource.upper() != 'SEND': request = 'GET %s' % (self._resource) if self._columns and any(self._columns): @@ -39,7 +38,6 @@ def __str__(self): else: timestamp = str(int(time.time())) request = "COMMAND [{0}] {1}\n".format(timestamp, ' '.join(self._command).encode('utf-8')) - print request return request From 0908639c533ba0a31d46ae7fdb8ae3ac89c94d82 Mon Sep 17 00:00:00 2001 From: Nikhil Mulley Date: Sun, 1 May 2016 05:25:11 -0700 Subject: [PATCH 3/4] Update livestatus.py --- mk_livestatus/livestatus.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mk_livestatus/livestatus.py b/mk_livestatus/livestatus.py index e4c42cb..5bc8e56 100644 --- a/mk_livestatus/livestatus.py +++ b/mk_livestatus/livestatus.py @@ -38,7 +38,6 @@ def __str__(self): else: timestamp = str(int(time.time())) request = "COMMAND [{0}] {1}\n".format(timestamp, ' '.join(self._command).encode('utf-8')) - return request def columns(self, *args): From 42f55ad79f33619b84bc9c8466db10121204f797 Mon Sep 17 00:00:00 2001 From: Nikhil Mulley Date: Fri, 6 May 2016 00:14:24 -0700 Subject: [PATCH 4/4] Update livestatus.py --- mk_livestatus/livestatus.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mk_livestatus/livestatus.py b/mk_livestatus/livestatus.py index 5bc8e56..1dae80c 100644 --- a/mk_livestatus/livestatus.py +++ b/mk_livestatus/livestatus.py @@ -16,6 +16,7 @@ def __init__(self, conn, resource): self._resource = resource self._columns = [] self._filters = [] + self._command = [] def call(self): try: