summaryrefslogtreecommitdiff
path: root/test/nagios/nagios_report.py
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-04-15 17:17:36 +0200
committerAzul <azul@leap.se>2014-04-17 10:39:59 +0200
commitbe2971c2e615cc8a808822317d049e99f5183bdc (patch)
treeee2e77b91f661f5fa6c69f5d851eb848f38eb3b6 /test/nagios/nagios_report.py
parent44d2d031555c889b94e9738cb45740b16a4071ce (diff)
refactor: move nagios specifs to nagios_test
nagios_test.run takes a function and executes it. If it returns nothing or 0 and OK nagios message is printed. If it returns sth. else this will be printed a a warning If it raises an exception that will result in a CRITICAL report. This way we can keep the nagios things outside the test cases and just write simple functions that either return 0, a warnign or raise a meaningful exception
Diffstat (limited to 'test/nagios/nagios_report.py')
-rw-r--r--test/nagios/nagios_report.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/nagios/nagios_report.py b/test/nagios/nagios_report.py
new file mode 100644
index 0000000..13cd551
--- /dev/null
+++ b/test/nagios/nagios_report.py
@@ -0,0 +1,24 @@
+def functions_for_system(under_test):
+ """
+ returns a set of functions to use for nagios reporting:
+ >>> ok, warn, critical, unknown = functions_for_system("tested system")
+
+ each of them will print a nagios line with its argument and
+ return the exit code:
+ >>> warn("that looks strange")
+ 1 tested system - WARNING - that looks strange
+ 1
+ """
+ def report_function(code):
+ return lambda message : report(under_test, code, message)
+ return map(report_function, [0,1,2,3])
+
+def report(system, code, message):
+ codes = {0: 'OK', 1: 'WARNING', 2: 'CRITICAL', 3: 'UNKNOWN'}
+ print "%d %s - %s - %s" % \
+ (code, system, codes[code], message)
+ return code
+
+if __name__ == "__main__":
+ import doctest
+ doctest.testmod()