Merge "Allow configure the number of http retries"
This commit is contained in:
@@ -228,6 +228,10 @@ opts = [
|
||||
default=None,
|
||||
help='Request timeout value for communicating with Identity'
|
||||
' 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',
|
||||
default=None,
|
||||
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
|
||||
int(http_connect_timeout_cfg))
|
||||
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):
|
||||
if self._memcache_security_strategy:
|
||||
|
@@ -25,6 +25,7 @@ import testtools
|
||||
import uuid
|
||||
|
||||
import fixtures
|
||||
import mock
|
||||
import webob
|
||||
|
||||
from keystoneclient.common import cms
|
||||
@@ -992,6 +993,21 @@ class AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest):
|
||||
self.middleware(req.environ, self.start_fake_response)
|
||||
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):
|
||||
def setUp(self):
|
||||
|
Reference in New Issue
Block a user