diff options
author | Sam Morrison <sorrison@gmail.com> | 2013-01-23 14:26:54 +1100 |
---|---|---|
committer | Sam Morrison <sorrison@gmail.com> | 2013-01-24 09:38:32 +1100 |
commit | d5af38165a511a0813288d519cbfe31009b4cf25 (patch) | |
tree | 3dcb4caf2357be64bd407bdaa78348494d791e63 /keystoneclient/service_catalog.py | |
parent | 3dfb8437fc9135465f2b66b2c420bf20899fcf10 (diff) | |
download | python-keystoneclient-d5af38165a511a0813288d519cbfe31009b4cf25.tar.gz |
Take region_name into account when calling url_for
Fixes bug 1103282
When creating a Client object with region_name specified, url_for
will return an endpoint url for that region.
Change-Id: Ia5c95503fe2ed5e53de93040d70ba08a9c09f286
Diffstat (limited to 'keystoneclient/service_catalog.py')
-rw-r--r-- | keystoneclient/service_catalog.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/keystoneclient/service_catalog.py b/keystoneclient/service_catalog.py index 50587c2..5b179d9 100644 --- a/keystoneclient/service_catalog.py +++ b/keystoneclient/service_catalog.py @@ -23,8 +23,9 @@ from keystoneclient import exceptions class ServiceCatalog(object): """Helper methods for dealing with a Keystone Service Catalog.""" - def __init__(self, resource_dict): + def __init__(self, resource_dict, region_name=None): self.catalog = resource_dict + self.region_name = region_name def get_token(self): """Fetch token details from service catalog. @@ -70,6 +71,9 @@ class ServiceCatalog(object): endpoints = service['endpoints'] for endpoint in endpoints: + if self.region_name and \ + endpoint.get('region') != self.region_name: + continue if not filter_value or endpoint.get(attr) == filter_value: return endpoint[endpoint_type] |