- Change .py files to use 4-space indents and no hard tab characters.
[plcapi.git] / PLC / Methods / ReportRunlevel.py
index 57b3afe..1d3dc29 100644 (file)
@@ -1,4 +1,5 @@
 # $Id$
+# $URL$
 from PLC.Faults import *
 from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
@@ -37,6 +38,10 @@ class ReportRunlevel(Method):
             nodes  = [self.caller]
 
         node = nodes[0]
+        # avoid logging this even too often
+        # avoid logging occurrences where run_level does not change
+        former_level=None
+        if 'run_level' in node: former_level=node['run_level']
 
         node.update_last_contact()
         for field in can_update:
@@ -45,6 +50,14 @@ class ReportRunlevel(Method):
 
         node.sync(commit=True)
 
-        self.message = "Node Runlevel Report : %s" % ", ".join(report_fields.keys())
+        # skip logging in this case
+        if former_level and 'run_level' in node and node['run_level'] == former_level:
+            pass
+        else:
+            # handle the 'run_level' key
+            message="run level " + node['hostname'] + ":"
+            if 'run_level' in report_fields:
+                message += str(former_level) + "->" + report_fields['run_level']
+            message += ", ".join(  [ k + "->" + v for (k,v) in report_fields.items() if k not in ['run_level'] ] )
 
         return 1