@cryptotaxi247 / netdata-1 / commits / c4e259985

UrlService: add min required version check (#6263)

* check urllib3 version on init

Ilya Mashchenko committed Jun 13, 2019 at 10:32 UTC c4e259985acae52278c1a54fcd07354421a7ca8b
1 file changed +23
collectors/python.d.plugin/python_modules/bases/FrameworkServices/UrlService.py
+23
@@ -6,6 +6,8 @@
6
7 import urllib3
8
9 +from distutils.version import StrictVersion as version
10 +
11 from bases.FrameworkServices.SimpleService import SimpleService
12
13 try:
@@ -14,9 +16,30 @@ except AttributeError:
16 pass
17
18
19 +# https://github.com/urllib3/urllib3/blob/master/CHANGES.rst#19-2014-07-04
20 +# New retry logic and urllib3.util.retry.Retry configuration object. (Issue https://github.com/urllib3/urllib3/pull/326)
21 +URLLIB3_MIN_REQUIRED_VERSION = '1.9'
22 +URLLIB3_VERSION = urllib3.__version__
23 +URLLIB3 = 'urllib3'
24 +
25 +
26 +def version_check():
27 + if version(URLLIB3_VERSION) >= version(URLLIB3_MIN_REQUIRED_VERSION):
28 + return
29 +
30 + err = '{0} version: {1}, minimum required version: {2}, please upgrade'.format(
31 + URLLIB3,
32 + URLLIB3_VERSION,
33 + URLLIB3_MIN_REQUIRED_VERSION,
34 + )
35 + raise Exception(err)
36 +
37 +
38 class UrlService(SimpleService):
39 def __init__(self, configuration=None, name=None):
40 + version_check()
41 SimpleService.__init__(self, configuration=configuration, name=name)
42 + self.debug("{0} version: {1}".format(URLLIB3, URLLIB3_VERSION))
43 self.url = self.configuration.get('url')
44 self.user = self.configuration.get('user')
45 self.password = self.configuration.get('pass')