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