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')