resolves #602
paulfantom committed
Jun 23, 2016 at 12:48 UTC
92b445a29c38ea16a24094e3d3c50aaff1e1787e
2 files changed
+17
plugins.d/python.d.plugin
+12
@@ -312,14 +312,26 @@ class PythonCharts(object):
312
If job.check() fails job is stopped
313
"""
314
i = 0
315
+ overridden = []
316
while i < len(self.jobs):
317
job = self.jobs[i]
318
+ if job.name in overridden:
319
+ self._stop(job)
320
+ msg.error(job.name + " already exists")
321
try:
322
if not job.check():
323
self._stop(job, "failed check")
324
else:
325
msg.debug(job.chart_name, ": check succeeded")
326
i += 1
327
+ try:
328
+ if job.override_name is not None:
329
+ job.name = job.override_name
330
+ msg.debug(job.chart_name + " changing chart name to: " + job.__module__ + job.name)
331
+ job.chart_name = job.__module__ + job.name
332
+ overridden.append(job.name)
333
+ except Exception:
334
+ pass
335
except AttributeError:
336
self._stop(job, "no check")
337
except (UnboundLocalError, Exception) as e:
python.d/python_modules/base.py
+5
@@ -33,6 +33,7 @@ class BaseService(threading.Thread):
33
self.priority = 140000
34
self.update_every = 1
35
self.name = name
36
+ self.override_name = None
37
if configuration is None:
38
self.error("BaseService: no configuration parameters supplied. Cannot create Service.")
39
raise RuntimeError
@@ -51,6 +52,10 @@ class BaseService(threading.Thread):
52
'retries':0}
53
:param config: dict
54
"""
55
+ try:
56
+ self.override_name = config.pop('override_name')
57
+ except KeyError:
58
+ pass
59
self.update_every = int(config.pop('update_every'))
60
self.priority = int(config.pop('priority'))
61
self.retries = int(config.pop('retries'))