From fd109cdada72c9ae3e061a943ed10025720aed7b Mon Sep 17 00:00:00 2001 From: Frederik Lindenaar <frederik@lindenaar.nl> Date: Tue, 18 Oct 2016 01:44:11 +0200 Subject: [PATCH] changed way how performance data is handled so that the order is preserved (fixes #1) --- plugins/check_temperature | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/plugins/check_temperature b/plugins/check_temperature index 7fd9477..493de8c 100755 --- a/plugins/check_temperature +++ b/plugins/check_temperature @@ -168,8 +168,8 @@ def get_sensor_device_filename(args, dev_dir=SENSOR_DEV_DIR, if len(device_folders) == 0: errmsg = 'no supported temperature sensors in %s' % dev_dir else: - serials=map(lambda x: basename(x) if x.find(prefix)<0 - else basename(x)[len(prefix):], device_folders) + serials = [ basename(x)[len(prefix):] if x.find(prefix)>=0 + else basename(x) for x in device_folders ] errmsg = 'found multiple temperature sensors (%s), please '\ 'specify which one to use' % ', '.join(serials) logger.critical(errmsg) @@ -219,13 +219,12 @@ def nagios_exit(status, message, data=None): """exit 'nagios-style', print status and message followed by perf. data""" if logger.isEnabledFor(logging.CRITICAL): if data is not None and len(data) > 0: - perfdata=map(lambda (k,v): "'%s'=%s" %(k,v if not isinstance(v,list) - else ';'.join(map(lambda x:'' if x is None else str(x),v))) - ,data.iteritems()) - perfstr = ' | ' + ' '.join(perfdata) + perfdata = ' | ' + ' '.join([ "'%s'=%s" % (k, + ';'.join(['' if x is None else str(x) for x in v]) + if isinstance(v,list) else v) for k,v in data ]) else: - perfstr = '' - print 'Temperature %s: %s%s' % (status[0], message, perfstr) + perfdata = '' + print 'Temperature %s: %s%s' % (status[0], message, perfdata) exit(status[1]) @@ -254,20 +253,20 @@ if __name__ == '__main__': logger.info('Got temperature reading of %.2f degrees %s in %fs', temperature, args.converter[2], elapse) - temp_unit = args.converter[1] - message = 'current temperature is %.2f%s' % (temperature, temp_unit) + unit = args.converter[1] + message = 'current temperature is %.2f%s' % (temperature, unit) if args.critical is not None and temperature > args.critical: nagiosresult = NAGIOS_CRITICAL - message += ', above critical threshold %.2f%s'%(args.critical,temp_unit) + message+= ' and exceeds critical threshold %.2f%s' %(args.critical,unit) elif args.warn is not None and temperature > args.warn: nagiosresult = NAGIOS_WARN - message += ', above warning threshold %.2f%s' % (args.warn, temp_unit) + message+= ' and exceeds warning threshold %.2f%s' % (args.warn,unit) else: nagiosresult = NAGIOS_OK - nagios_exit(nagiosresult, message, { - 'temperature': [ '%f%s' % (temperature, temp_unit), - args.warn, args.critical, None, None], - 'retries': [ tries-1, None, args.retries, 0, None ], - 'checktime': [ '%fs' % elapse, None, None, 0, None] - }) + nagios_exit(nagiosresult, message, [ + ('temperature', [ '%f%s' % (temperature, unit), + args.warn, args.critical, None, None]), + ('retries', [ tries-1, None, args.retries, 0, None ]), + ('checktime', [ '%fs' % elapse, None, None, 0, None]) + ]) -- libgit2 0.22.2