def glance_client(context, region_name=None): # We should allow glance to get the endpoint from the service # catalog, but to do so we would need to be able to specify # the endpoint_filter on the API calls, but glance # doesn't currently allow that. As a result, we must # specify the endpoint explicitly. if CONF.glance_url: endpoint_url = '%(url)s%(tenant)s' % { 'url': normalize_url(CONF.glance_url), 'tenant': context.tenant } else: endpoint_url = get_endpoint(context.service_catalog, service_type=CONF.glance_service_type, endpoint_region=region_name or CONF.os_region_name, endpoint_type=CONF.glance_endpoint_type) auth = v3.Token(CONF.trove_auth_url, context.auth_token) session = ka_session.Session(auth=auth) return Client(CONF.glance_client_version, endpoint=endpoint_url, session=session)
def test_get_endpoint_ignores_missing_type(self): service_catalog = [ { 'name': 'Other Service', }, { 'endpoint_links': [], 'endpoints': [ { 'adminURL': 'http://localhost:8080/', 'region': 'RegionOne', 'internalURL': 'http://internalURL/', 'publicURL': 'http://publicURL/', }, { 'adminURL': 'http://localhost:8081/', 'region': 'RegionTwo', 'internalURL': 'http://internalURL2/', 'publicURL': 'http://publicURL2/', }, ], 'type': 'object-store', 'name': 'Object Storage Service', } ] endpoint = remote.get_endpoint(service_catalog, service_type='object-store', endpoint_region='RegionOne') self.assertEqual('http://publicURL/', endpoint)
def test_get_endpoint_ignores_missing_type(self): service_catalog = [{ 'name': 'Other Service', }, { 'endpoint_links': [], 'endpoints': [ { 'adminURL': 'http://localhost:8080/', 'region': 'RegionOne', 'internalURL': 'http://internalURL/', 'publicURL': 'http://publicURL/', }, { 'adminURL': 'http://localhost:8081/', 'region': 'RegionTwo', 'internalURL': 'http://internalURL2/', 'publicURL': 'http://publicURL2/', }, ], 'type': 'object-store', 'name': 'Object Storage Service', }] endpoint = remote.get_endpoint(service_catalog, service_type='object-store', endpoint_region='RegionOne') self.assertEqual('http://publicURL/', endpoint)
def trove_client(context, region_name=None): if CONF.trove_url: url = '%(url)s%(tenant)s' % { 'url': normalize_url(CONF.trove_url), 'tenant': context.tenant} else: url = get_endpoint(context.service_catalog, service_type=CONF.trove_service_type, endpoint_region=region_name or CONF.os_region_name, endpoint_type=CONF.trove_endpoint_type) client = TroveClient.Client(context.user, context.auth_token, project_id=context.tenant, auth_url=PROXY_AUTH_URL) client.client.auth_token = context.auth_token client.client.management_url = url return client
def trove_client(context, region_name=None): if CONF.trove_url: url = '%(url)s%(tenant)s' % { 'url': normalize_url(CONF.trove_url), 'tenant': context.tenant } else: url = get_endpoint(context.service_catalog, service_type=CONF.trove_service_type, endpoint_region=region_name or CONF.os_region_name, endpoint_type=CONF.trove_endpoint_type) client = TroveClient.Client(context.user, context.auth_token, project_id=context.tenant, auth_url=PROXY_AUTH_URL) client.client.auth_token = context.auth_token client.client.management_url = url return client
def glance_client(context, region_name=None): # We should allow glance to get the endpoint from the service # catalog, but to do so we would need to be able to specify # the endpoint_filter on the API calls, but glance # doesn't currently allow that. As a result, we must # specify the endpoint explicitly. if CONF.glance_url: endpoint_url = '%(url)s%(tenant)s' % { 'url': normalize_url(CONF.glance_url), 'tenant': context.tenant} else: endpoint_url = get_endpoint( context.service_catalog, service_type=CONF.glance_service_type, endpoint_region=region_name or CONF.os_region_name, endpoint_type=CONF.glance_endpoint_type) auth = v3.Token(CONF.trove_auth_url, context.auth_token) session = ka_session.Session(auth=auth) return Client('2', endpoint=endpoint_url, session=session)
def test_get_endpoint_with_custom_endpoint_type(self): endpoint = remote.get_endpoint(self.service_catalog, service_type='object-store', endpoint_type='internalURL', endpoint_region='RegionOne') self.assertEqual('http://internalURL/', endpoint)