summaryrefslogtreecommitdiff
path: root/swiftclient/authv1.py
diff options
context:
space:
mode:
Diffstat (limited to 'swiftclient/authv1.py')
-rw-r--r--swiftclient/authv1.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/swiftclient/authv1.py b/swiftclient/authv1.py
index 55469ac..d70acac 100644
--- a/swiftclient/authv1.py
+++ b/swiftclient/authv1.py
@@ -45,6 +45,7 @@ from six.moves.urllib.parse import urljoin
# Note that while we import keystoneauth1 here, we *don't* need to add it to
# requirements.txt -- this entire module only makes sense (and should only be
# loaded) if keystoneauth is already installed.
+from keystoneauth1 import discover
from keystoneauth1 import plugin
from keystoneauth1 import exceptions
from keystoneauth1 import loading
@@ -110,11 +111,20 @@ class ServiceCatalogV1(object):
]
def url_for(self, **kwargs):
+ return self.endpoint_data_for(**kwargs).url
+
+ def endpoint_data_for(self, **kwargs):
kwargs.setdefault('interface', 'public')
kwargs.setdefault('service_type', None)
if kwargs['service_type'] == 'object-store':
- return self.storage_url
+ return discover.EndpointData(
+ service_type='object-store',
+ service_name='swift',
+ interface=kwargs['interface'],
+ region_name='default',
+ catalog_url=self.storage_url,
+ )
# Although our "catalog" includes an identity entry, nothing that uses
# url_for() (including `openstack endpoint list`) will know what to do