From ada72ea3c7bd2af3b733eca164dcbfe05b1e1bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20L=C3=A4ssig?= Date: Fri, 1 Jul 2016 19:06:41 +0200 Subject: [PATCH] use new Context for Services (without scalars) --- check-systemd-service | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/check-systemd-service b/check-systemd-service index 07db07e..b90dfdc 100755 --- a/check-systemd-service +++ b/check-systemd-service @@ -120,6 +120,20 @@ class Systemd_Service(nagiosplugin.Resource): self.service_state = (self.activestate(), self.substate()) yield nagiosplugin.Metric('service_state', self.service_state) +class Service_Context(nagiosplugin.Context): + + def evaluate(self, metric, recource): + # possible Values are: + # nagiosplugin.Ok, nagiosplugin.Warn, nagiosplugin.Critical, nagiosplugin.Unknown + resultD = collections.defaultdict( lambda: nagiosplugin.Unknown, { + 'active': nagiosplugin.Ok, + 'reloading': nagiosplugin.Ok, + 'activating': nagiosplugin.Ok, + 'deactivating': nagiosplugin.Warn, + 'inactive': nagiosplugin.Critical, + 'failed': nagiosplugin.Critical, + }) + return self.result_cls(resultD[metric.value[0]], metric=metric) @nagiosplugin.guarded @@ -136,10 +150,7 @@ def main(): _log.debug('Found arguments %r', args) check = nagiosplugin.Check( Systemd_Service(**vars(args)), - nagiosplugin.Context('service_state', - fmt_metric=Service_Fmt_Metric('Service is running. State is {v[0]}, {v[1]}', - 'Service is broken! State is {v[0]}, {v[1]}') - ), + Service_Context('service_state', fmt_metric="ServiceState is {value[0]}({value[1]})") ) check.main(args.verbose, args.timeout)