diff options
author | Julien Danjou <julien@danjou.info> | 2012-10-04 19:24:10 +0200 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2012-10-08 19:41:55 +0200 |
commit | ba1df90656f9bcff4d769b18042f731a6d295faa (patch) | |
tree | 24533490c41473f7156088ec6526cbcffeb1bf1a /keystone/catalog | |
parent | e7fdf934f5a082dc58a542b54e1eb24b9054af2d (diff) | |
download | keystone-ba1df90656f9bcff4d769b18042f731a6d295faa.tar.gz keystone-ba1df90656f9bcff4d769b18042f731a6d295faa.tar.xz keystone-ba1df90656f9bcff4d769b18042f731a6d295faa.zip |
Fix catalog when services have no URL
This fixes bug #1061736
Change-Id: Ic8f7a45dfabb2e3fb40f6aa6cd4c0f29c13f2c77
Signed-off-by: Julien Danjou <julien@danjou.info>
Diffstat (limited to 'keystone/catalog')
-rw-r--r-- | keystone/catalog/backends/sql.py | 9 | ||||
-rw-r--r-- | keystone/catalog/backends/templated.py | 1 | ||||
-rw-r--r-- | keystone/catalog/core.py | 4 |
3 files changed, 6 insertions, 8 deletions
diff --git a/keystone/catalog/backends/sql.py b/keystone/catalog/backends/sql.py index 6d4552f2..e6172db5 100644 --- a/keystone/catalog/backends/sql.py +++ b/keystone/catalog/backends/sql.py @@ -156,14 +156,11 @@ class Catalog(sql.Base, catalog.Driver): catalog[region][srv_type] = {} - internal_url = ep['internalurl'].replace('$(', '%(') - public_url = ep['publicurl'].replace('$(', '%(') - admin_url = ep['adminurl'].replace('$(', '%(') srv_type = catalog[region][srv_type] srv_type['id'] = ep['id'] srv_type['name'] = srv_name - srv_type['publicURL'] = core.format_url(public_url, d) - srv_type['adminURL'] = core.format_url(admin_url, d) - srv_type['internalURL'] = core.format_url(internal_url, d) + srv_type['publicURL'] = core.format_url(ep.get('publicurl', ''), d) + srv_type['internalURL'] = core.format_url(ep.get('internalurl'), d) + srv_type['adminURL'] = core.format_url(ep.get('adminurl'), d) return catalog diff --git a/keystone/catalog/backends/templated.py b/keystone/catalog/backends/templated.py index da1319e6..acd20ae3 100644 --- a/keystone/catalog/backends/templated.py +++ b/keystone/catalog/backends/templated.py @@ -120,7 +120,6 @@ class TemplatedCatalog(kvs.Catalog): for service, service_ref in region_ref.iteritems(): o[region][service] = {} for k, v in service_ref.iteritems(): - v = v.replace('$(', '%(') o[region][service][k] = core.format_url(v, d) return o diff --git a/keystone/catalog/core.py b/keystone/catalog/core.py index 26df75f2..430cc47e 100644 --- a/keystone/catalog/core.py +++ b/keystone/catalog/core.py @@ -36,7 +36,9 @@ LOG = logging.getLogger(__name__) def format_url(url, data): """Helper Method for all Backend Catalog's to Deal with URLS""" try: - result = url % data + result = url.replace('$(', '%(') % data + except AttributeError: + return None except KeyError as e: LOG.error("Malformed endpoint %s - unknown key %s" % (url, str(e))) |