@cryptotaxi247 / netdata-1 / commits / d5fb2be8a

UrlService dont respect Retry-After header by default (#5082)

* disable respecting retry_after_header * fix

Ilya Mashchenko committed Jan 2, 2019 at 13:28 UTC d5fb2be8aeeeb37b6c31af91fb3d8be625fa466a
1 file changed +13 -6
collectors/python.d.plugin/python_modules/bases/FrameworkServices/UrlService.py
+13 -6
@@ -26,6 +26,7 @@ class UrlService(SimpleService):
26 self.method = self.configuration.get('method', 'GET')
27 self.header = self.configuration.get('header')
28 self.request_timeout = self.configuration.get('timeout', 1)
29 + self.respect_retry_after_header = self.configuration.get('respect_retry_after_header')
30 self.tls_verify = self.configuration.get('tls_verify')
31 self.tls_ca_file = self.configuration.get('tls_ca_file')
32 self.tls_key_file = self.configuration.get('tls_key_file')
@@ -111,12 +112,18 @@ class UrlService(SimpleService):
112 """
113 url = url or self.url
114 manager = manager or self._manager
114 - response = manager.request(method=self.method,
115 - url=url,
116 - timeout=self.request_timeout,
117 - retries=retries,
118 - headers=manager.headers,
119 - redirect=redirect)
115 + retry = urllib3.Retry(retries)
116 + if hasattr(retry, 'respect_retry_after_header'):
117 + retry.respect_retry_after_header = bool(self.respect_retry_after_header)
118 +
119 + response = manager.request(
120 + method=self.method,
121 + url=url,
122 + timeout=self.request_timeout,
123 + retries=retry,
124 + headers=manager.headers,
125 + redirect=redirect,
126 + )
127 if isinstance(response.data, str):
128 return response.status, response.data
129 return response.status, response.data.decode()