Fixed work with 'data_processing' service spelling

Change-Id: Ie100526fb9995a9d97ad01772f3cc31d0d332d6b
Closes-Bug: #1413745
This commit is contained in:
Andrew Lazarev
2015-01-22 13:46:59 -08:00
parent 0669639b51
commit d928527834

View File

@@ -14,6 +14,7 @@
# limitations under the License.
from keystoneclient import adapter
from keystoneclient.openstack.common.apiclient import exceptions as kex
from keystoneclient.v2_0 import client as keystone_client_v2
from keystoneclient.v3 import client as keystone_client_v3
@@ -51,8 +52,17 @@ class Client(object):
service_name=service_name,
region_name=region_name)
input_auth_token = keystone.session.get_token(auth)
sahara_catalog_url = keystone.session.get_endpoint(
auth, interface=endpoint_type, service_type=service_type)
try:
sahara_catalog_url = keystone.session.get_endpoint(
auth, interface=endpoint_type,
service_type=service_type)
except kex.EndpointNotFound:
# This is support of 'data_processing' service spelling
# which was used for releases before Kilo
service_type = service_type.replace('-', '_')
sahara_catalog_url = keystone.session.get_endpoint(
auth, interface=endpoint_type,
service_type=service_type)
else:
keystone = self.get_keystone_client(
username=username,
@@ -68,7 +78,10 @@ class Client(object):
if not sahara_catalog_url:
catalog = keystone.service_catalog.get_endpoints(service_type)
if service_type not in catalog:
# This is support of 'data_processing' service spelling
# which was used for releases before Kilo
service_type = service_type.replace('-', '_')
catalog = keystone.service_catalog.get_endpoints(service_type)
if service_type in catalog:
for e_type, endpoint in catalog.get(service_type)[0].items():