summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2014-08-29 11:23:28 +1000
committerJamie Lennox <jamielennox@redhat.com>2014-09-01 10:49:12 +1000
commit0e6171904385550972b3a961e9cb1614403312dc (patch)
tree4b9b135789d2901cbe3b50c8bf37d2d7380cc7b6
parent22a93fceb40fd289e5c5d91d1b1b10e40b0a0ae9 (diff)
downloadpython-keystoneclient-0e6171904385550972b3a961e9cb1614403312dc.tar.gz
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
-rw-r--r--keystoneclient/adapter.py6
-rw-r--r--keystoneclient/tests/test_session.py6
2 files changed, 10 insertions, 2 deletions
diff --git a/keystoneclient/adapter.py b/keystoneclient/adapter.py
index 605b1ec..b5687b9 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 c225ae1..2b90b73 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)