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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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})
Ejemplo n.º 7
0
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})
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
 def __init__(self, session):
     self.session = session
     self.prefix = session.get_endpoint(service_type='placement',
                                        interface=cfg.CONF.endpoint_type)