]> git.ipfire.org Git - collecty.git/blobdiff - src/collecty/client.py
Add version information
[collecty.git] / src / collecty / client.py
index 4570c69357486e150b8b5eea8c5321f2871eb7ff..05c076030d9d6e229c0782275e3d9e74ce5849d5 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 ###############################################################################
 #                                                                             #
 # collecty - A system statistics collection daemon for IPFire                 #
 
 import argparse
 import dbus
+import platform
 import sys
 
-from constants import *
-from i18n import _
+from .constants import *
+from .i18n import _
 
 import logging
 log = logging.getLogger("collectly.client")
@@ -44,7 +45,7 @@ class CollectyClient(object):
                templates = self.list_templates()
 
                for t in sorted(templates):
-                       print t
+                       print(t)
 
        def generate_graph(self, template_name, **kwargs):
                byte_array = self.proxy.GenerateGraph(template_name, kwargs,
@@ -52,10 +53,11 @@ class CollectyClient(object):
 
                # Convert the byte array into a byte string again
                if byte_array:
-                       return "".join((chr(b) for b in byte_array))
+                       return bytes(byte_array)
 
        def generate_graph_cli(self, ns):
                kwargs = {
+                       "format"    : ns.format,
                        "object_id" : ns.object,
                }
 
@@ -75,6 +77,15 @@ class CollectyClient(object):
                with open(ns.filename, "wb") as f:
                        f.write(graph)
 
+       def version_cli(self, args):
+               daemon_version = self.proxy.Version()
+
+               print(_("collecty %s running on Python %s") % \
+                       (COLLECTY_VERSION, platform.python_version()))
+
+               if not COLLECTY_VERSION == daemon_version:
+                       print(_("daemon %s") % daemon_version)
+
        def parse_cli(self, args):
                parser = argparse.ArgumentParser(prog="collecty-client")
                subparsers = parser.add_subparsers(help="sub-command help")
@@ -85,6 +96,8 @@ class CollectyClient(object):
                parser_generate_graph.set_defaults(func=self.generate_graph_cli)
                parser_generate_graph.add_argument("--filename",
                        help=_("filename"), required=True)
+               parser_generate_graph.add_argument("--format",
+                       help=_("image format"), default=DEFAULT_IMAGE_FORMAT)
                parser_generate_graph.add_argument("--interval", help=_("interval"))
                parser_generate_graph.add_argument("--object",
                        help=_("Object identifier"), default="default")
@@ -102,6 +115,10 @@ class CollectyClient(object):
                        help=_("Lists all graph templates"))
                parser_list_templates.set_defaults(func=self.list_templates_cli)
 
+               # version
+               parser_version = subparsers.add_parser("version", help=_("Show version"))
+               parser_version.set_defaults(func=self.version_cli)
+
                return parser.parse_args(args)
 
        def run_cli(self, args=None):