def get_session_endpoint(self, service_key): """Return the endpoint from config or the catalog. If a configuration lists an explicit endpoint for a service, return that. Otherwise, fetch the service catalog from the keystone session and return the appropriate endpoint. :param service_key: Generic key for service, such as 'compute' or 'network' :returns: Endpoint for the service, or None if not found """ override_endpoint = self.get_endpoint(service_key) if override_endpoint: return override_endpoint # keystone is a special case in keystone, because what? session = self.get_session() if service_key == 'identity': endpoint = session.get_endpoint(interface=plugin.AUTH_INTERFACE) else: endpoint = session.get_endpoint( service_type=self.get_service_type(service_key), service_name=self.get_service_name(service_key), interface=self.get_interface(service_key), region_name=self.region) return endpoint
def get_session_endpoint(self, service_key): """Return the endpoint from config or the catalog. If a configuration lists an explicit endpoint for a service, return that. Otherwise, fetch the service catalog from the keystone session and return the appropriate endpoint. :param service_key: Generic key for service, such as 'compute' or 'network' :returns: Endpoint for the service, or None if not found """ override_endpoint = self.get_endpoint(service_key) if override_endpoint: return override_endpoint # keystone is a special case in keystone, because what? session = self.get_session() if service_key == 'identity': endpoint = session.get_endpoint(interface=plugin.AUTH_INTERFACE) else: args = { 'service_type': self.get_service_type(service_key), 'service_name': self.get_service_name(service_key), 'interface': self.get_interface(service_key), 'region_name': self.region } try: endpoint = session.get_endpoint(**args) except keystoneauth1.exceptions.catalog.EndpointNotFound: self.log.warning("Keystone catalog entry not found (%s)", args) endpoint = None return endpoint
def connect_to_swift_with_admin(session, region_name): swift_connection = swift_conn(session=session, os_options={'region_name': region_name}, preauthurl=session.get_endpoint( service_type='object-store', region_name=region_name, interface='public')) return swift_connection
def _get_highest_endpoint(self, service_types, kwargs): session = self.get_session() for service_type in service_types: kwargs['service_type'] = service_type try: # Return the highest version we find that matches # the request return session.get_endpoint(**kwargs) except keystoneauth1.exceptions.catalog.EndpointNotFound: pass
def _get_credsmgr_client(context=None): region_name = CONF.keystone_authtoken.region_name if context: token = context.auth_token sc = service_catalog.ServiceCatalogV2(context.service_catalog) credsmgr_endpoint = sc.url_for(service_type='credsmgr', region_name=region_name) else: session = get_admin_session(CONF) token = session.get_token() credsmgr_endpoint = session.get_endpoint(service_type='credsmgr', region_name=region_name) return Client(credsmgr_endpoint, token=token)
def get_gnocchiclient(conf, request_timeout=None): group = conf.gnocchi.auth_section session = keystone_client.get_session(conf, group=group, timeout=request_timeout) adapter = keystoneauth1.session.TCPKeepAliveAdapter( pool_maxsize=conf.max_parallel_requests) session.mount("http://", adapter) session.mount("https://", adapter) interface = conf[group].interface region_name = conf[group].region_name gnocchi_url = session.get_endpoint(service_type='metric', service_name='gnocchi', interface=interface, region_name=region_name) return client.Client( '1', session, adapter_options={'connect_retries': 3, 'interface': interface, 'region_name': region_name, 'endpoint_override': gnocchi_url})
def get_heat_handle(cred, project=None): project_name = project if project else cred['project'] print 'keystone ' + project_name + ':' + cred['auth-url'] session = keystoneauth1.session.Session( auth=keystoneauth1.identity.v3.Password( auth_url=cred['auth-url'], username=cred['user'], password=cred['passwd'], project_name=project_name, user_domain_name=cred['user-domain'], project_domain_name=cred['project-domain']), verify=False) print 'Connecting to heat' return heatclient.client.Client(1, session.get_endpoint( auth=session.auth, service_type='orchestration', interface='public'), token=session.get_token(), insecure=True)
def __init__(self, session): self.session = session self.prefix = session.get_endpoint(service_type='placement', interface=cfg.CONF.endpoint_type)