summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorDean Troyer <dtroyer@gmail.com>2014-10-17 23:43:38 -0500
committerDean Troyer <dtroyer@gmail.com>2014-10-18 00:01:52 -0500
commit2166d7d3afbbdc1659e4cffdb7bcd890cd00ec19 (patch)
tree63f1596a4eab44fa41ac54d4692dd3ba7f4efa93 /openstackclient
parent0de67016c7daa1712b568cb2e49728fac3eb57ad (diff)
downloadpython-openstackclient-2166d7d3afbbdc1659e4cffdb7bcd890cd00ec19.tar.gz
Remove ClientManager._service_catalog
Anything that needs a service catalog can get it directly from auth_ref.service_catalog, no need to carry the extra attribute. ClientManager.get_endpoint_for_service_type() reamins the proper method to get an endpoint for clients that still need one directly. Change-Id: I809091c9c71d08f29606d7fd8b500898ff2cb8ae
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/clientmanager.py14
-rw-r--r--openstackclient/identity/client.py24
-rw-r--r--openstackclient/identity/v2_0/service.py3
-rw-r--r--openstackclient/image/client.py8
-rw-r--r--openstackclient/network/client.py10
-rw-r--r--openstackclient/object/client.py8
-rw-r--r--openstackclient/tests/common/test_clientmanager.py2
7 files changed, 29 insertions, 40 deletions
diff --git a/openstackclient/common/clientmanager.py b/openstackclient/common/clientmanager.py
index 336c0da0..febcedf4 100644
--- a/openstackclient/common/clientmanager.py
+++ b/openstackclient/common/clientmanager.py
@@ -66,7 +66,6 @@ class ClientManager(object):
self._auth_params = auth.build_auth_params(auth_options)
self._region_name = auth_options.os_region_name
self._api_version = api_version
- self._service_catalog = None
self.timing = auth_options.timing
# For compatibility until all clients can be updated
@@ -104,7 +103,6 @@ class ClientManager(object):
if 'token' not in self._auth_params:
LOG.debug("Get service catalog")
self.auth_ref = self.auth.get_auth_ref(self.session)
- self._service_catalog = self.auth_ref.service_catalog
return
@@ -112,12 +110,14 @@ class ClientManager(object):
"""Return the endpoint URL for the service type."""
# See if we are using password flow auth, i.e. we have a
# service catalog to select endpoints from
- if self._service_catalog:
- endpoint = self._service_catalog.url_for(
- service_type=service_type, region_name=region_name)
+ if self.auth_ref:
+ endpoint = self.auth_ref.service_catalog.url_for(
+ service_type=service_type,
+ region_name=region_name,
+ )
else:
- # Hope we were given the correct URL.
- endpoint = self._auth_url or self._url
+ # Get the passed endpoint directly from the auth plugin
+ endpoint = self.auth.get_endpoint(self.session)
return endpoint
diff --git a/openstackclient/identity/client.py b/openstackclient/identity/client.py
index bc10a6d2..8050d120 100644
--- a/openstackclient/identity/client.py
+++ b/openstackclient/identity/client.py
@@ -44,27 +44,11 @@ def make_client(instance):
API_VERSIONS)
LOG.debug('Instantiating identity client: %s', identity_client)
- # TODO(dtroyer): Something doesn't like the session.auth when using
- # token auth, chase that down.
- if instance._url:
- LOG.debug('Using service token auth')
- client = identity_client(
- endpoint=instance._url,
- token=instance._auth_params['token'],
- cacert=instance._cacert,
- insecure=instance._insecure
- )
- else:
- LOG.debug('Using auth plugin: %s' % instance._auth_plugin)
- client = identity_client(
- session=instance.session,
- cacert=instance._cacert,
- )
+ LOG.debug('Using auth plugin: %s' % instance._auth_plugin)
+ client = identity_client(
+ session=instance.session,
+ )
- # TODO(dtroyer): the identity v2 role commands use this yet, fix that
- # so we can remove it
- if not instance._url:
- instance.auth_ref = instance.auth.get_auth_ref(instance.session)
return client
diff --git a/openstackclient/identity/v2_0/service.py b/openstackclient/identity/v2_0/service.py
index 458dce7c..e8848dde 100644
--- a/openstackclient/identity/v2_0/service.py
+++ b/openstackclient/identity/v2_0/service.py
@@ -141,9 +141,10 @@ class ShowService(show.ShowOne):
def take_action(self, parsed_args):
self.log.debug('take_action(%s)', parsed_args)
identity_client = self.app.client_manager.identity
+ auth_ref = self.app.client_manager.auth_ref
if parsed_args.catalog:
- endpoints = identity_client.service_catalog.get_endpoints(
+ endpoints = auth_ref.service_catalog.get_endpoints(
service_type=parsed_args.service)
for (service, service_endpoints) in six.iteritems(endpoints):
if service_endpoints:
diff --git a/openstackclient/image/client.py b/openstackclient/image/client.py
index 84f59437..c55ff853 100644
--- a/openstackclient/image/client.py
+++ b/openstackclient/image/client.py
@@ -40,11 +40,13 @@ def make_client(instance):
API_VERSIONS)
LOG.debug('Instantiating image client: %s', image_client)
- if not instance._url:
- instance._url = instance.get_endpoint_for_service_type(API_NAME)
+ endpoint = instance.get_endpoint_for_service_type(
+ API_NAME,
+ region_name=instance._region_name,
+ )
return image_client(
- instance._url,
+ endpoint,
token=instance.auth.get_token(instance.session),
cacert=instance._cacert,
insecure=instance._insecure,
diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py
index e4ce2f6a..bb3e1b23 100644
--- a/openstackclient/network/client.py
+++ b/openstackclient/network/client.py
@@ -34,16 +34,18 @@ def make_client(instance):
API_VERSIONS)
LOG.debug('Instantiating network client: %s', network_client)
- if not instance._url:
- instance._url = instance.get_endpoint_for_service_type(
- "network", region_name=instance._region_name)
+ endpoint = instance.get_endpoint_for_service_type(
+ API_NAME,
+ region_name=instance._region_name,
+ )
+
return network_client(
username=instance._username,
tenant_name=instance._project_name,
password=instance._password,
region_name=instance._region_name,
auth_url=instance._auth_url,
- endpoint_url=instance._url,
+ endpoint_url=endpoint,
token=instance.auth.get_token(instance.session),
insecure=instance._insecure,
ca_cert=instance._cacert,
diff --git a/openstackclient/object/client.py b/openstackclient/object/client.py
index 1ac905c3..beb7c04f 100644
--- a/openstackclient/object/client.py
+++ b/openstackclient/object/client.py
@@ -33,10 +33,10 @@ API_VERSIONS = {
def make_client(instance):
"""Returns an object-store API client."""
- if instance._url:
- endpoint = instance._url
- else:
- endpoint = instance.get_endpoint_for_service_type("object-store")
+ endpoint = instance.get_endpoint_for_service_type(
+ 'object-store',
+ region_name=instance._region_name,
+ )
client = object_store_v1.APIv1(
session=instance.session,
diff --git a/openstackclient/tests/common/test_clientmanager.py b/openstackclient/tests/common/test_clientmanager.py
index 24adfa0e..a7b13c6c 100644
--- a/openstackclient/tests/common/test_clientmanager.py
+++ b/openstackclient/tests/common/test_clientmanager.py
@@ -157,7 +157,7 @@ class TestClientManager(utils.TestCase):
)
self.assertEqual(
dir(SERVICE_CATALOG),
- dir(client_manager._service_catalog),
+ dir(client_manager.auth_ref.service_catalog),
)
def stub_auth(self, json=None, url=None, verb=None, **kwargs):