summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-24 05:02:06 +0000
committerGerrit Code Review <review@openstack.org>2012-10-24 05:02:06 +0000
commitc3b4f7fd0e4c010b05e91f952fb2345da6c6cba5 (patch)
tree18c15aa258b773f09ae0984a7ceec9fc2ec19c80
parent56a4e4bd7da1353684d34e5a9817b88501e41d8c (diff)
parent0dfc69806d3767a7f6be91d9df18f20d31866c91 (diff)
downloadpython-keystoneclient-c3b4f7fd0e4c010b05e91f952fb2345da6c6cba5.tar.gz
Merge "Don't log an exception for an expected empty catalog."
-rw-r--r--keystoneclient/exceptions.py5
-rw-r--r--keystoneclient/service_catalog.py3
-rw-r--r--keystoneclient/v2_0/client.py9
3 files changed, 12 insertions, 5 deletions
diff --git a/keystoneclient/exceptions.py b/keystoneclient/exceptions.py
index f992ff3..802d396 100644
--- a/keystoneclient/exceptions.py
+++ b/keystoneclient/exceptions.py
@@ -24,6 +24,11 @@ class EndpointNotFound(Exception):
pass
+class EmptyCatalog(Exception):
+ """ The service catalog is empty. """
+ pass
+
+
class ClientException(Exception):
"""
The base exception class for all exceptions this library raises.
diff --git a/keystoneclient/service_catalog.py b/keystoneclient/service_catalog.py
index 5f20e0f..cbe5c5d 100644
--- a/keystoneclient/service_catalog.py
+++ b/keystoneclient/service_catalog.py
@@ -61,6 +61,9 @@ class ServiceCatalog(object):
"""
catalog = self.catalog.get('serviceCatalog', [])
+ if not catalog:
+ raise exceptions.EmptyCatalog('The service catalog is empty.')
+
for service in catalog:
if service['type'] != service_type:
continue
diff --git a/keystoneclient/v2_0/client.py b/keystoneclient/v2_0/client.py
index cc06d23..02fd59b 100644
--- a/keystoneclient/v2_0/client.py
+++ b/keystoneclient/v2_0/client.py
@@ -122,8 +122,6 @@ class Client(client.HTTPClient):
sc = self.service_catalog.get_token()
self.auth_token = sc['id']
# Save these since we have them and they'll be useful later
- # NOTE(termie): these used to be in the token and then were removed
- # ... why?
self.auth_tenant_id = sc.get('tenant_id')
self.auth_user_id = sc.get('user_id')
except KeyError:
@@ -136,6 +134,7 @@ class Client(client.HTTPClient):
self.management_url = self.service_catalog.url_for(
attr='region', filter_value=self.region_name,
endpoint_type='adminURL')
- except:
- # Unscoped tokens don't return a service catalog
- _logger.exception("unable to retrieve service catalog with token")
+ except exceptions.EmptyCatalog:
+ # Unscoped tokens don't return a service catalog;
+ # allow those to pass while any other errors bubble up.
+ pass