summaryrefslogtreecommitdiff
path: root/keystoneclient/service_catalog.py
diff options
context:
space:
mode:
authorSam Morrison <sorrison@gmail.com>2013-01-23 14:26:54 +1100
committerSam Morrison <sorrison@gmail.com>2013-01-24 09:38:32 +1100
commitd5af38165a511a0813288d519cbfe31009b4cf25 (patch)
tree3dcb4caf2357be64bd407bdaa78348494d791e63 /keystoneclient/service_catalog.py
parent3dfb8437fc9135465f2b66b2c420bf20899fcf10 (diff)
downloadpython-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.py6
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]