From e282d7d7da67a4869030ee917d8a904ab0412e59 Mon Sep 17 00:00:00 2001 From: Andrey Kislyuk Date: Mon, 2 Apr 2018 09:22:37 -0700 Subject: [PATCH] Add timeout policy Tweak values --- hca/util/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/hca/util/__init__.py b/hca/util/__init__.py index 94c9b431..cba515a2 100755 --- a/hca/util/__init__.py +++ b/hca/util/__init__.py @@ -93,7 +93,7 @@ def special_cli_command(self, required_argument, optional_argument=""): import requests from requests.adapters import HTTPAdapter from requests_oauthlib import OAuth2Session -from urllib3.util import retry +from urllib3.util import retry, timeout from .. import get_config, logger from .compat import USING_PYTHON2 @@ -107,6 +107,9 @@ def __init__(self, retry_after_status_codes={301}, **kwargs): class _ClientMethodFactory(object): + retry_policy = RetryPolicy(read=10, status=10, status_forcelist=frozenset({500, 502, 503, 504})) + timeout_policy = timeout.Timeout(connect=60, read=120) + def __init__(self, client, parameters, path_parameters, http_method, method_name, method_data, body_props): self.__dict__.update(locals()) self._context_manager_response = None @@ -124,15 +127,15 @@ def _request(self, req_args, url=None, stream=False, headers=None): session = self.client.get_authenticated_session() else: session = self.client.get_session() - retry_policy = RetryPolicy(read=10, status=10, status_forcelist=frozenset({502, 503, 504})) - adapter = HTTPAdapter(max_retries=retry_policy) + adapter = HTTPAdapter(max_retries=self.retry_policy) session.mount('http://', adapter) session.mount('https://', adapter) # TODO: (akislyuk) if using service account credentials, use manual refresh here json_input = body if self.body_props else None headers = headers if headers else {} - res = session.request(self.http_method, url, params=query, json=json_input, stream=stream, headers=headers) + res = session.request(self.http_method, url, params=query, json=json_input, stream=stream, headers=headers, + timeout=self.timeout_policy) if res.status_code >= 400: raise SwaggerAPIException(response=res) return res