summaryrefslogtreecommitdiff
path: root/keystoneclient/adapter.py
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2014-08-28 11:57:06 +1000
committerJamie Lennox <jamielennox@redhat.com>2014-09-01 10:48:32 +1000
commit22a93fceb40fd289e5c5d91d1b1b10e40b0a0ae9 (patch)
tree4471f80658f036bbed108693eb313a69e19900e5 /keystoneclient/adapter.py
parent1643f7da32b1f729f12d042565d8c67f10f91b8c (diff)
downloadpython-keystoneclient-22a93fceb40fd289e5c5d91d1b1b10e40b0a0ae9.tar.gz
Allow providing an endpoint_override to requests
As much as I'd prefer not to need this functionality there are plenty of existing clients that we want to have use the adapter that can accept a bypass argument such that it ignores the service catalog and uses that URL for all requests. We therefore need to be able to support similar functionality in our adapter. Change-Id: I206705241ff9b84967d0d9c089b4795bcc26b65e
Diffstat (limited to 'keystoneclient/adapter.py')
-rw-r--r--keystoneclient/adapter.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/keystoneclient/adapter.py b/keystoneclient/adapter.py
index 1018b02..605b1ec 100644
--- a/keystoneclient/adapter.py
+++ b/keystoneclient/adapter.py
@@ -26,8 +26,8 @@ class Adapter(object):
@utils.positional()
def __init__(self, session, service_type=None, service_name=None,
- interface=None, region_name=None, auth=None,
- user_agent=None):
+ interface=None, region_name=None, endpoint_override=None,
+ auth=None, user_agent=None):
"""Create a new adapter.
:param Session session: The session object to wrap.
@@ -35,16 +35,18 @@ class Adapter(object):
:param str service_name: The default service_name for URL discovery.
:param str interface: The default interface for URL discovery.
: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 auth.BaseAuthPlugin auth: An auth plugin to use instead of the
session one.
:param str user_agent: The User-Agent string to set.
"""
-
self.session = session
self.service_type = service_type
self.service_name = service_name
self.interface = interface
self.region_name = region_name
+ self.endpoint_override = endpoint_override
self.user_agent = user_agent
self.auth = auth
@@ -60,6 +62,9 @@ class Adapter(object):
if self.region_name:
endpoint_filter.setdefault('region_name', self.region_name)
+ if self.endpoint_override:
+ kwargs.setdefault('endpoint_override', self.endpoint_override)
+
if self.auth:
kwargs.setdefault('auth', self.auth)
if self.user_agent: