]> git.ipfire.org Git - oddments/collecty.git/commitdiff
Allow the plugins to return the results as a tuple or list
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 24 May 2015 10:48:53 +0000 (10:48 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 24 May 2015 10:48:53 +0000 (10:48 +0000)
Therefore we do not have the necessity to format the result
into a format that rrdtool can parse later.

src/collecty/plugins/base.py
src/collecty/plugins/conntrack.py
src/collecty/plugins/cpu.py
src/collecty/plugins/disk.py
src/collecty/plugins/interface.py
src/collecty/plugins/latency.py
src/collecty/plugins/loadavg.py
src/collecty/plugins/memory.py

index a2c10552fa8a95de863f4f70a667bc5fe2283648..6c31edebf9d5969e02f6e601994192e679f59f7d 100644 (file)
@@ -155,6 +155,9 @@ class Plugin(threading.Thread):
                        now = datetime.datetime.utcnow()
                        try:
                                result = o.collect()
+
+                               if isinstance(result, tuple) or isinstance(result, list):
+                                       result = ":".join(("%s" % e for e in result))
                        except:
                                self.log.warning(_("Unhandled exception in %s.collect()") % o, exc_info=True)
                                continue
index cbfece99c3526af35dffce0c9ea0d8252d2667d0..0e1c6d9009c72fff278cd410325cb66ccaa73f4e 100644 (file)
@@ -414,7 +414,7 @@ class ConntrackLayer3ProtocolsObject(ConntrackObject):
                        r = self.conntrack_table.layer3_protocols.get(proto, 0)
                        results.append("%s" % r)
 
-               return ":".join(results)
+               return results
 
 
 class ConntrackLayer4ProtocolsObject(ConntrackObject):
@@ -435,7 +435,7 @@ class ConntrackLayer4ProtocolsObject(ConntrackObject):
                        r = self.conntrack_table.layer4_protocols.get(proto, 0)
                        results.append("%s" % r)
 
-               return ":".join(results)
+               return results
 
 
 class ConntrackProtocolWithStatesObject(ConntrackObject):
@@ -464,7 +464,7 @@ class ConntrackProtocolWithStatesObject(ConntrackObject):
                return results
 
        def collect(self):
-               return ":".join(self.get_states())
+               return self.get_states()
 
 
 class ConntrackPlugin(base.Plugin):
index 292bf0c797452239350a460935f104578fc40885..962163f388ef93537abee5fe9c2da581d62b00ba 100644 (file)
@@ -137,7 +137,7 @@ class ProcessorObject(base.Object):
                                if len(columns) < 8:
                                        continue
 
-                               entry = [
+                               return (
                                        columns[1], # user
                                        columns[2], # nice
                                        columns[3], # sys
@@ -145,9 +145,7 @@ class ProcessorObject(base.Object):
                                        columns[5], # wait
                                        columns[6], # irq
                                        columns[7], # sirq
-                               ]
-
-                               return ":".join(entry)
+                               )
                finally:
                        if f:
                                f.close()
index b5a234673e6a151ed175ad86cc78018b1579cae5..759156cb9f0dc2536e95dcc7bdcfa09394c0ea70 100644 (file)
@@ -196,7 +196,7 @@ class DiskObject(base.Object):
        def collect(self):
                stats = self.parse_stats()
 
-               return ":".join((
+               return (
                        self.is_awake(),
                        stats.get("read_ios"),
                        stats.get("read_sectors"),
@@ -204,7 +204,7 @@ class DiskObject(base.Object):
                        stats.get("write_sectors"),
                        self.get_bad_sectors(),
                        self.get_temperature(),
-               ))
+               )
 
        def parse_stats(self):
                """
index c373cf21fca6e82d28eac41e4955e705a62793be..addca198512d6aad4bcc0e6924b125321802df37 100644 (file)
@@ -268,7 +268,7 @@ class InterfaceObject(base.Object):
                                if f:
                                        f.close()
 
-               return ":".join(ret)
+               return ret
 
 
 class InterfacePlugin(base.Plugin):
index a6db8d0bd29bb9d56132020eb79a691518007b15..0b2324a75b5f28a8fe0817c8b3b2d8dbf89a38ef 100644 (file)
@@ -112,11 +112,11 @@ class LatencyObject(base.Object):
                                % { "host" : self.hostname, "msg" : e.msg })
                        return
 
-               return ":".join((
+               return (
                        "%.10f" % ping.avg_time,
                        "%.10f" % ping.loss,
                        "%.10f" % ping.stddev,
-               ))
+               )
 
 
 class LatencyPlugin(base.Plugin):
index c7e5e145c0dcd36152185e71c838065dda462092..24cce740ebf334c51248edff858e6535d6bbf3bb 100644 (file)
@@ -84,7 +84,7 @@ class LoadAvgObject(base.Object):
                return "default"
 
        def collect(self):
-               return ":".join(["%.10f" % l for l in os.getloadavg()])
+               return os.getloadavg()
 
 
 class LoadAvgPlugin(base.Plugin):
index 7fcf1154b2444dd81cf7472cf178a66b2f91940e..55d6586493ca3943f80d72fecec2ce6c11422206 100644 (file)
@@ -132,7 +132,7 @@ class MemoryObject(base.Object):
                        else:
                                ret.append("0")
 
-                       return ":".join(ret)
+                       return ret
                finally:
                        if f:
                                f.close()