diff options
author | Azul <azul@leap.se> | 2014-04-15 17:17:36 +0200 |
---|---|---|
committer | Azul <azul@leap.se> | 2014-04-17 10:39:59 +0200 |
commit | be2971c2e615cc8a808822317d049e99f5183bdc (patch) | |
tree | ee2e77b91f661f5fa6c69f5d851eb848f38eb3b6 /test/nagios/nagios_report.py | |
parent | 44d2d031555c889b94e9738cb45740b16a4071ce (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.py | 24 |
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() |