diff options
| author | Monty Taylor <mordred@inaugust.com> | 2014-10-11 14:25:50 -0700 |
|---|---|---|
| committer | Monty Taylor <mordred@inaugust.com> | 2014-10-11 14:30:04 -0700 |
| commit | 3af547a1a6e597ea1b38fb273195ac1ef00d29dd (patch) | |
| tree | 85627b1d2065bc2e47ce5f1646ed9e07adc6d21f /openstackclient | |
| parent | f0c57e17c9a4b5bbe2f072a4eacefce3bcf30d45 (diff) | |
| download | python-openstackclient-3af547a1a6e597ea1b38fb273195ac1ef00d29dd.tar.gz | |
Fix operation on clouds with availability-zones
In a cloud with AZs, you can get multiple entries back from the service
catalog - one for each AZ and then one that is AZ agnostic that's tied
to the region. If the region_name is plumbed all the way through, this
works as intended.
Change-Id: I3b365ea306e8111fc80830672ae8080a5d1dc8e0
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/common/clientmanager.py | 4 | ||||
| -rw-r--r-- | openstackclient/compute/client.py | 2 | ||||
| -rw-r--r-- | openstackclient/network/client.py | 3 | ||||
| -rw-r--r-- | openstackclient/volume/client.py | 2 |
4 files changed, 6 insertions, 5 deletions
diff --git a/openstackclient/common/clientmanager.py b/openstackclient/common/clientmanager.py index 0542b473..387721a4 100644 --- a/openstackclient/common/clientmanager.py +++ b/openstackclient/common/clientmanager.py @@ -110,13 +110,13 @@ class ClientManager(object): return - def get_endpoint_for_service_type(self, service_type): + def get_endpoint_for_service_type(self, service_type, region_name=None): """Return the endpoint URL for the service type.""" # See if we are using password flow auth, i.e. we have a # service catalog to select endpoints from if self._service_catalog: endpoint = self._service_catalog.url_for( - service_type=service_type) + service_type=service_type, region_name=region_name) else: # Hope we were given the correct URL. endpoint = self._auth_url or self._url diff --git a/openstackclient/compute/client.py b/openstackclient/compute/client.py index dc50507e..d473295b 100644 --- a/openstackclient/compute/client.py +++ b/openstackclient/compute/client.py @@ -68,7 +68,7 @@ def make_client(instance): else: # password flow client.client.management_url = instance.get_endpoint_for_service_type( - API_NAME) + API_NAME, region_name=instance._region_name) client.client.service_catalog = instance._service_catalog client.client.auth_token = instance._token return client diff --git a/openstackclient/network/client.py b/openstackclient/network/client.py index d3102da1..870fdad1 100644 --- a/openstackclient/network/client.py +++ b/openstackclient/network/client.py @@ -35,7 +35,8 @@ def make_client(instance): LOG.debug('Instantiating network client: %s', network_client) if not instance._url: - instance._url = instance.get_endpoint_for_service_type("network") + instance._url = instance.get_endpoint_for_service_type( + "network", region_name=instance._region_name) return network_client( username=instance._username, tenant_name=instance._project_name, diff --git a/openstackclient/volume/client.py b/openstackclient/volume/client.py index f71fbe8b..58cb267e 100644 --- a/openstackclient/volume/client.py +++ b/openstackclient/volume/client.py @@ -68,7 +68,7 @@ def make_client(instance): else: # password flow client.client.management_url = instance.get_endpoint_for_service_type( - API_NAME) + API_NAME, region_name=instance._region_name) client.client.service_catalog = instance._service_catalog client.client.auth_token = instance._token |
