Code

Fix "active" mode to check if only 1 result in XML
authorSven Velt <sven@velt.de>
Fri, 26 Mar 2010 14:27:45 +0000 (15:27 +0100)
committerSven Velt <sven@velt.de>
Fri, 26 Mar 2010 14:27:45 +0000 (15:27 +0100)
Signed-off-by: Sven Velt <sven@velt.de>
nagixsc_xml2nagios.py

index f16c8a832278d51d6786d4df13e10267d9df4094..3aee034cfbac0ade5d5ea0a499a4791d9afb2886 100755 (executable)
@@ -83,10 +83,9 @@ elif options.mode == 'checkresult' or options.mode == 'checkresult_check':
 elif options.mode == 'active':
        debug(1, options.verb, 'Running in active/plugin mode')
        if options.host == None:
-               debug(1, options.verb, 'No host specified, using first host in XML file')
+               debug(1, options.verb, 'No host specified on command line')
        if options.service == None:
-               print 'No service specified on command line!'
-               sys.exit(127)
+               debug(1, options.verb, 'No service specified on command line, looking at XML file later')
 
 ##############################################################################
 
@@ -194,9 +193,15 @@ elif options.mode == 'active':
 
        if len(checks) > 1:
                print 'Nag(ix)SC UNKNOWN - Found more (%s) than one host/service!' % len(checks)
+               print 'Found: ' + ', '.join(['%s/%s' % (c['host_name'], c['service_description']) for c in checks])
                sys.exit(3)
        elif len(checks) == 0:
-               print 'Nag(ix)SC UNKNOWN - No check for "%s"/"%s" found in XML' % (options.host, options.service)
+               output = 'Nag(ix)SC UNKNOWN - No check found in XML'
+               if options.host:
+                       output += ' - Host filter: "%s"' % options.host
+               if options.service:
+                       output += ' - Service filter: "%s"' % options.service
+               print output
                sys.exit(3)
 
        print checks[0]['output']