Merge "Handle DiscoveryFailure errors"

This commit is contained in:
Zuul 2018-08-28 16:21:59 +00:00 committed by Gerrit Code Review
commit f6ad3f236f
2 changed files with 12 additions and 0 deletions

View File

@ -763,6 +763,7 @@ class AuthProtocol(BaseAuthProtocol):
self._token_cache.set(token_hashes[0], data) self._token_cache.set(token_hashes[0], data)
except (ksa_exceptions.ConnectFailure, except (ksa_exceptions.ConnectFailure,
ksa_exceptions.DiscoveryFailure,
ksa_exceptions.RequestTimeout, ksa_exceptions.RequestTimeout,
ksm_exceptions.RevocationListError, ksm_exceptions.RevocationListError,
ksm_exceptions.ServiceError) as e: ksm_exceptions.ServiceError) as e:

View File

@ -1070,6 +1070,17 @@ class CommonAuthTokenMiddlewareTest(object):
self.assertIsNone(self._get_cached_token(ERROR_TOKEN)) self.assertIsNone(self._get_cached_token(ERROR_TOKEN))
self.assert_valid_last_url(ERROR_TOKEN) self.assert_valid_last_url(ERROR_TOKEN)
def test_discovery_failure(self):
def discovery_failure_response(request, context):
raise ksa_exceptions.DiscoveryFailure(
"Could not determine a suitable URL for the plugin")
self.requests_mock.get(BASE_URI, text=discovery_failure_response)
self.call_middleware(headers={'X-Auth-Token': 'token'},
expected_status=503)
self.assertIsNone(self._get_cached_token('token'))
self.assertEqual(BASE_URI, self.requests_mock.last_request.url)
def test_http_request_max_retries(self): def test_http_request_max_retries(self):
times_retry = 10 times_retry = 10
body_string = 'The Keystone service is temporarily unavailable.' body_string = 'The Keystone service is temporarily unavailable.'