Merge "Allow configure the number of http retries"
This commit is contained in:
@@ -228,6 +228,10 @@ opts = [
|
|||||||
default=None,
|
default=None,
|
||||||
help='Request timeout value for communicating with Identity'
|
help='Request timeout value for communicating with Identity'
|
||||||
' API server.'),
|
' API server.'),
|
||||||
|
cfg.IntOpt('http_request_max_retries',
|
||||||
|
default=3,
|
||||||
|
help='How many times are we trying to reconnect when'
|
||||||
|
' communicating with Identity API Server.'),
|
||||||
cfg.StrOpt('http_handler',
|
cfg.StrOpt('http_handler',
|
||||||
default=None,
|
default=None,
|
||||||
help='Allows to pass in the name of a fake http_handler'
|
help='Allows to pass in the name of a fake http_handler'
|
||||||
@@ -428,7 +432,8 @@ class AuthProtocol(object):
|
|||||||
self.http_connect_timeout = (http_connect_timeout_cfg and
|
self.http_connect_timeout = (http_connect_timeout_cfg and
|
||||||
int(http_connect_timeout_cfg))
|
int(http_connect_timeout_cfg))
|
||||||
self.auth_version = None
|
self.auth_version = None
|
||||||
self.http_request_max_retries = 3
|
self.http_request_max_retries = \
|
||||||
|
self._conf_get('http_request_max_retries')
|
||||||
|
|
||||||
def _assert_valid_memcache_protection_config(self):
|
def _assert_valid_memcache_protection_config(self):
|
||||||
if self._memcache_security_strategy:
|
if self._memcache_security_strategy:
|
||||||
|
@@ -25,6 +25,7 @@ import testtools
|
|||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import fixtures
|
import fixtures
|
||||||
|
import mock
|
||||||
import webob
|
import webob
|
||||||
|
|
||||||
from keystoneclient.common import cms
|
from keystoneclient.common import cms
|
||||||
@@ -992,6 +993,21 @@ class AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest):
|
|||||||
self.middleware(req.environ, self.start_fake_response)
|
self.middleware(req.environ, self.start_fake_response)
|
||||||
self.assertEqual(self._get_cached_token(token), None)
|
self.assertEqual(self._get_cached_token(token), None)
|
||||||
|
|
||||||
|
def test_http_request_max_retries(self):
|
||||||
|
times_retry = 10
|
||||||
|
|
||||||
|
req = webob.Request.blank('/')
|
||||||
|
token = self.token_dict['uuid_token_default']
|
||||||
|
req.headers['X-Auth-Token'] = token
|
||||||
|
|
||||||
|
self.set_middleware(conf=dict(http_request_max_retries=times_retry))
|
||||||
|
|
||||||
|
with mock.patch('time.sleep') as mock_obj:
|
||||||
|
self.set_fake_http(RaisingHTTPNetworkError)
|
||||||
|
self.middleware(req.environ, self.start_fake_response)
|
||||||
|
|
||||||
|
self.assertEqual(mock_obj.call_count, times_retry)
|
||||||
|
|
||||||
|
|
||||||
class CertDownloadMiddlewareTest(BaseAuthTokenMiddlewareTest):
|
class CertDownloadMiddlewareTest(BaseAuthTokenMiddlewareTest):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Reference in New Issue
Block a user