From 6b0fd667ce8ab213c7748e8e9e91b2f0c32b41f2 Mon Sep 17 00:00:00 2001 From: Jamie Lennox Date: Tue, 28 Oct 2014 13:25:18 +0100 Subject: [PATCH] get_endpoint should return the override If your adapter has an endpoint_override set then this value will be consumed by session and used in preference to whatever you give to endpoint_filter. This means that if you ask the adapter for the endpoint it is going to use to query a URL you expect to get back the override because this is where it will be sent. Closes-Bug: #1400174 Change-Id: I707e549a4fa349d0e9a0bdac61a2573aa2e5b434 --- keystoneclient/adapter.py | 3 +++ keystoneclient/tests/test_session.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/keystoneclient/adapter.py b/keystoneclient/adapter.py index 3cb4dc4e0..ea0d342aa 100644 --- a/keystoneclient/adapter.py +++ b/keystoneclient/adapter.py @@ -116,6 +116,9 @@ class Adapter(object): :returns: An endpoint if available or None. :rtype: string """ + if self.endpoint_override: + return self.endpoint_override + self._set_endpoint_filter_kwargs(kwargs) return self.session.get_endpoint(auth or self.auth, **kwargs) diff --git a/keystoneclient/tests/test_session.py b/keystoneclient/tests/test_session.py index 6a9d4080d..736dd697e 100644 --- a/keystoneclient/tests/test_session.py +++ b/keystoneclient/tests/test_session.py @@ -689,6 +689,8 @@ class AdapterTest(utils.TestCase): self.assertEqual(response, resp.text) self.assertEqual(endpoint_url, self.requests.last_request.url) + self.assertEqual(endpoint_override, adpt.get_endpoint()) + def test_adapter_invalidate(self): auth = CalledAuthPlugin() sess = client_session.Session()