Merge "Allow configure the number of http retries"

This commit is contained in:
Jenkins
2013-08-23 02:41:28 +00:00
committed by Gerrit Code Review
2 changed files with 22 additions and 1 deletions

View File

@@ -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:

View File

@@ -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):