From 0e6171904385550972b3a961e9cb1614403312dc Mon Sep 17 00:00:00 2001 From: Jamie Lennox Date: Fri, 29 Aug 2014 11:23:28 +1000 Subject: [PATCH] Add version parameter to adapter. The version parameter was left out of adapter previously because setting a version number triggers discovery and I felt that it was not ready for the other services. However if it isn't set then it won't be used and we may as well implement it here once rather than have the individual services that do support it override it themselves. Change-Id: I707380a01175dc19b59de32cbb8fd2bb123d7335 --- keystoneclient/adapter.py | 6 +++++- keystoneclient/tests/test_session.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/keystoneclient/adapter.py b/keystoneclient/adapter.py index 605b1ec96..b5687b931 100644 --- a/keystoneclient/adapter.py +++ b/keystoneclient/adapter.py @@ -27,7 +27,7 @@ class Adapter(object): @utils.positional() def __init__(self, session, service_type=None, service_name=None, interface=None, region_name=None, endpoint_override=None, - auth=None, user_agent=None): + version=None, auth=None, user_agent=None): """Create a new adapter. :param Session session: The session object to wrap. @@ -37,6 +37,7 @@ class Adapter(object): :param str region_name: The default region_name for URL discovery. :param str endpoint_override: Always use this endpoint URL for requests for this client. + :param tuple version: The version that this API targets. :param auth.BaseAuthPlugin auth: An auth plugin to use instead of the session one. :param str user_agent: The User-Agent string to set. @@ -47,6 +48,7 @@ class Adapter(object): self.interface = interface self.region_name = region_name self.endpoint_override = endpoint_override + self.version = version self.user_agent = user_agent self.auth = auth @@ -61,6 +63,8 @@ class Adapter(object): endpoint_filter.setdefault('interface', self.interface) if self.region_name: endpoint_filter.setdefault('region_name', self.region_name) + if self.version: + endpoint_filter.setdefault('version', self.version) if self.endpoint_override: kwargs.setdefault('endpoint_override', self.endpoint_override) diff --git a/keystoneclient/tests/test_session.py b/keystoneclient/tests/test_session.py index c225ae144..2b90b7344 100644 --- a/keystoneclient/tests/test_session.py +++ b/keystoneclient/tests/test_session.py @@ -548,6 +548,7 @@ class AdapterTest(utils.TestCase): INTERFACE = uuid.uuid4().hex REGION_NAME = uuid.uuid4().hex USER_AGENT = uuid.uuid4().hex + VERSION = uuid.uuid4().hex TEST_URL = CalledAuthPlugin.ENDPOINT @@ -563,7 +564,8 @@ class AdapterTest(utils.TestCase): service_name=self.SERVICE_NAME, interface=self.INTERFACE, region_name=self.REGION_NAME, - user_agent=self.USER_AGENT) + user_agent=self.USER_AGENT, + version=self.VERSION) resp = adpt.get('/') self.assertEqual(resp.text, response) @@ -576,6 +578,8 @@ class AdapterTest(utils.TestCase): auth.endpoint_arguments['interface']) self.assertEqual(self.REGION_NAME, auth.endpoint_arguments['region_name']) + self.assertEqual(self.VERSION, + auth.endpoint_arguments['version']) self.assertTrue(auth.get_token_called) self.assertRequestHeaderEqual('User-Agent', self.USER_AGENT)