Don't log an exception for an expected empty catalog.
Cleans up the code around exception handling and logging when first authenticating (which often returns an unscoped token). There's no need to be logging an exception on an expected empty catalog and moreover the except block was a bare "except" which could mask other errors. Fixes bug 1070493 Change-Id: I5e791e95ce3f9ab77723a7f4698cb11b169dacfb
This commit is contained in:
@@ -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.
|
||||
|
@@ -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
|
||||
|
@@ -119,8 +119,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:
|
||||
@@ -133,6 +131,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
|
||||
|
Reference in New Issue
Block a user