- tenant_name=creds.tenant_name)
- return ks.service_catalog.url_for(
- service_type=service_type,
- endpoint_type=creds.endpoint_type,
- region_name=creds.region_name)
+ project_name=creds.tenant_name,
+ project_domain_id='default',
+ user_domain_id='default')
+ sess = session.Session(auth=auth, verify=verify_ssl)
+ ks = client.Client(session=sess, interface='public')
+ service = ks.services.list(type=service_type)[0]
+ endpoints = ks.endpoints.list(service)
+ endpoint_type = 'publicURL'
+ region_name = 'RegionOne'
+ if creds.config is not None:
+ try:
+ config = json.loads(creds.config)
+ except ValueError:
+ config = yaml.safe_load(creds.config)
+ if 'endpoint_type' in config:
+ endpoint_type = config['endpoint_type']
+ if 'region_name' in config:
+ region_name = config['region_name']
+ for endpoint in endpoints:
+ if endpoint.interface in endpoint_type and endpoint.region == region_name:
+ return endpoint.url