@cryptotaxi247 / netdata-1 / commits / b537efdbe

python dockerd module: check version (#5217)

* add min req version to readme * check docker package version in check

Ilya Mashchenko committed Jan 19, 2019 at 03:53 UTC b537efdbef909375f4a9f74c258028b02d75f40a
2 files changed +14 -5
collectors/python.d.plugin/dockerd/README.md
+1 -1
@@ -3,7 +3,7 @@
3 Module monitor docker health metrics.
4
5 **Requirement:**
6 -* `docker` package
6 +* `docker` package, required version 3.2.0+
7
8 Following charts are drawn:
9
collectors/python.d.plugin/dockerd/dockerd.chart.py
+13 -4
@@ -10,9 +10,8 @@ except ImportError:
10
11 from bases.FrameworkServices.SimpleService import SimpleService
12
13 -# default module values (can be overridden per job in `config`)
14 -# update_every = 1
15 -priority = 60000
13 +from distutils.version import StrictVersion
14 +
15
16 # charts order (can be overridden if you want less charts, or different order)
17 ORDER = [
@@ -46,6 +45,9 @@ CHARTS = {
45 }
46
47
48 +MIN_REQUIRED_VERSION = '3.2.0'
49 +
50 +
51 class Service(SimpleService):
52 def __init__(self, configuration=None, name=None):
53 SimpleService.__init__(self, configuration=configuration, name=name)
@@ -55,7 +57,14 @@ class Service(SimpleService):
57
58 def check(self):
59 if not HAS_DOCKER:
58 - self.error("'docker' package is needed to use docker.chart.py")
60 + self.error("'docker' package is needed to use dockerd module")
61 + return False
62 +
63 + if StrictVersion(docker.__version__) < StrictVersion(MIN_REQUIRED_VERSION):
64 + self.error("installed 'docker' package version {0}, minimum required version {1}, please upgrade".format(
65 + docker.__version__,
66 + MIN_REQUIRED_VERSION,
67 + ))
68 return False
69
70 self.client = docker.DockerClient(base_url=self.configuration.get('url', 'unix://var/run/docker.sock'))