diff options
author | Zuul <zuul@review.openstack.org> | 2018-04-20 21:27:33 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-04-20 21:27:33 +0000 |
commit | cd919f5d1fa3864c3fb5a4b80cdf7723a2a95285 (patch) | |
tree | 56433041f2098a6108caed60171b61d0731c82ed /keystonemiddleware | |
parent | 2d080a9956f55c8100f98ed910b7e4d5f340be0d (diff) | |
parent | e503fbd9412d94be43962af3b3ef7067d7f7f49b (diff) | |
download | keystonemiddleware-cd919f5d1fa3864c3fb5a4b80cdf7723a2a95285.tar.gz |
Merge "Only include response body if there's a response"
Diffstat (limited to 'keystonemiddleware')
-rw-r--r-- | keystonemiddleware/auth_token/_identity.py | 7 | ||||
-rw-r--r-- | keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py | 19 |
2 files changed, 23 insertions, 3 deletions
diff --git a/keystonemiddleware/auth_token/_identity.py b/keystonemiddleware/auth_token/_identity.py index b7f2eff..c07eb45 100644 --- a/keystonemiddleware/auth_token/_identity.py +++ b/keystonemiddleware/auth_token/_identity.py @@ -234,9 +234,10 @@ class IdentityServer(object): raise ksm_exceptions.ServiceError(msg) except ksa_exceptions.HttpError as e: self._LOG.error( - 'Bad response code while validating token: %s', - e.http_status) - self._LOG.warning('Identity response: %s', e.response.text) + 'Bad response code while validating token: %s %s', + e.http_status, e.message) + if hasattr(e.response, 'text'): + self._LOG.warning('Identity response: %s', e.response.text) msg = _('Failed to fetch token data from identity server') raise ksm_exceptions.ServiceError(msg) else: diff --git a/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py b/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py index 9eb86c0..fdda195 100644 --- a/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py +++ b/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py @@ -98,6 +98,7 @@ VERSION_LIST_v3 = fixture.DiscoveryList(href=BASE_URI) VERSION_LIST_v2 = fixture.DiscoveryList(v3=False, href=BASE_URI) ERROR_TOKEN = '7ae290c2a06244c4b41692eb4e9225f2' +TIMEOUT_TOKEN = '4ed1c5e53beee59458adcf8261a8cae2' def cleanup_revoked_file(filename): @@ -1083,6 +1084,12 @@ class CommonAuthTokenMiddlewareTest(object): self.assertEqual(mock_obj.call_count, times_retry) + def test_request_timeout(self): + self.call_middleware(headers={'X-Auth-Token': TIMEOUT_TOKEN}, + expected_status=503) + self.assertIsNone(self._get_cached_token(TIMEOUT_TOKEN)) + self.assert_valid_last_url(TIMEOUT_TOKEN) + def test_nocatalog(self): conf = { 'include_service_catalog': 'False' @@ -1545,6 +1552,11 @@ def network_error_response(request, context): raise ksa_exceptions.ConnectFailure("Network connection refused.") +def request_timeout_response(request, context): + raise ksa_exceptions.RequestTimeout( + "Request to https://host/token/path timed out") + + class v2AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest, CommonAuthTokenMiddlewareTest, testresources.ResourcedTestCase): @@ -1618,6 +1630,9 @@ class v2AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest, url = '%s/v2.0/tokens/%s' % (BASE_URI, ERROR_TOKEN) self.requests_mock.get(url, text=network_error_response) + url = '%s/v2.0/tokens/%s' % (BASE_URI, TIMEOUT_TOKEN) + self.requests_mock.get(url, text=request_timeout_response) + self.set_middleware() def assert_unscoped_default_tenant_auto_scopes(self, token): @@ -1824,6 +1839,8 @@ class v3AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest, if token_id == ERROR_TOKEN: msg = "Network connection refused." raise ksa_exceptions.ConnectFailure(msg) + elif token_id == TIMEOUT_TOKEN: + request_timeout_response(request, context) try: response = self.examples.JSON_TOKEN_RESPONSES[token_id] @@ -2372,6 +2389,8 @@ class v3CompositeAuthTests(BaseAuthTokenMiddlewareTest, if token_id == ERROR_TOKEN: msg = "Network connection refused." raise ksc_exceptions.ConnectionRefused(msg) + elif token_id == TIMEOUT_TOKEN: + request_timeout_response(request, context) try: response = self.examples.JSON_TOKEN_RESPONSES[token_id] |