]> arthur.barton.de Git - netdata.git/commitdiff
resolves #602
authorpaulfantom <paulfantom@gmail.com>
Thu, 23 Jun 2016 10:48:32 +0000 (12:48 +0200)
committerpaulfantom <paulfantom@gmail.com>
Thu, 23 Jun 2016 10:48:32 +0000 (12:48 +0200)
plugins.d/python.d.plugin
python.d/python_modules/base.py

index b349be94c6bf1422c450dc734aaf94b6ce3f2c21..741ba1f7378a28c8010633b00f9de4964fb0f592 100755 (executable)
@@ -312,14 +312,26 @@ class PythonCharts(object):
         If job.check() fails job is stopped
         """
         i = 0
+        overridden = []
         while i < len(self.jobs):
             job = self.jobs[i]
+            if job.name in overridden:
+                self._stop(job)
+                msg.error(job.name + " already exists")
             try:
                 if not job.check():
                     self._stop(job, "failed check")
                 else:
                     msg.debug(job.chart_name, ": check succeeded")
                     i += 1
+                    try:
+                        if job.override_name is not None:
+                            job.name = job.override_name
+                            msg.debug(job.chart_name + " changing chart name to: " + job.__module__ + job.name)
+                            job.chart_name = job.__module__ + job.name
+                            overridden.append(job.name)
+                    except Exception:
+                        pass
             except AttributeError:
                 self._stop(job, "no check")
             except (UnboundLocalError, Exception) as e:
index b9737facd71939fb6dd2a33428192e1b8f9fab52..ca2ef4ab39c238a35930357e3d33b9df0f57a085 100644 (file)
@@ -33,6 +33,7 @@ class BaseService(threading.Thread):
         self.priority = 140000
         self.update_every = 1
         self.name = name
+        self.override_name = None
         if configuration is None:
             self.error("BaseService: no configuration parameters supplied. Cannot create Service.")
             raise RuntimeError
@@ -51,6 +52,10 @@ class BaseService(threading.Thread):
                       'retries':0}
         :param config: dict
         """
+        try:
+            self.override_name = config.pop('override_name')
+        except KeyError:
+            pass
         self.update_every = int(config.pop('update_every'))
         self.priority = int(config.pop('priority'))
         self.retries = int(config.pop('retries'))