def create_ctx_from_trust(trust_id): """Return context built from given trust.""" ctx = context.current() ctx = context.BlazarContext(user_name=CONF.os_admin_username, project_name=CONF.os_admin_project_name, request_id=ctx.request_id, global_request_id=ctx.global_request_id) auth_url = "%s://%s:%s" % (CONF.os_auth_protocol, base.get_os_auth_host(CONF), CONF.os_auth_port) if CONF.os_auth_prefix: auth_url += "/%s" % CONF.os_auth_prefix client = keystone.BlazarKeystoneClient( password=CONF.os_admin_password, trust_id=trust_id, auth_url=auth_url, ctx=ctx, ) # use 'with ctx' statement in the place you need context from trust return context.BlazarContext( user_name=ctx.user_name, project_name=ctx.project_name, auth_token=client.auth_token, service_catalog=client.service_catalog.catalog['catalog'], project_id=client.tenant_id, request_id=ctx.request_id, global_request_id=ctx.global_request_id)
def __init__(self, **kwargs): ctx = kwargs.pop('ctx', None) username = kwargs.pop('username', CONF.os_admin_username) password = kwargs.pop('password', CONF.os_admin_password) project_name = kwargs.pop('project_name', CONF.os_admin_project_name) user_domain_name = kwargs.pop('user_domain_name', CONF.os_admin_user_domain_name) project_domain_name = kwargs.pop('project_domain_name', CONF.os_admin_project_domain_name) auth_url = kwargs.pop('auth_url', None) region_name = kwargs.pop('region_name', CONF.os_region_name) if ctx is None: try: ctx = context.current() except RuntimeError: pass if ctx is not None: kwargs.setdefault('global_request_id', ctx.global_request_id) if auth_url is None: auth_url = "%s://%s:%s/%s/%s" % ( CONF.os_auth_protocol, base.get_os_auth_host(CONF), CONF.os_auth_port, CONF.os_auth_prefix, CONF.os_auth_version) auth = v3.Password(auth_url=auth_url, username=username, password=password, project_name=project_name, user_domain_name=user_domain_name, project_domain_name=project_domain_name) sess = session.Session(auth=auth) kwargs.setdefault('session', sess) kwargs.setdefault('region_name', region_name) self.neutron = neutron_client.Client(**kwargs)
def _create_client(self, **kwargs): """Create the HTTP session accessing the placement service.""" ctx = kwargs.pop('ctx', None) username = kwargs.pop('username', CONF.os_admin_username) user_domain_name = kwargs.pop('user_domain_name', CONF.os_admin_user_domain_name) project_name = kwargs.pop('project_name', CONF.os_admin_project_name) password = kwargs.pop('password', CONF.os_admin_password) project_domain_name = kwargs.pop('project_domain_name', CONF.os_admin_project_domain_name) auth_url = kwargs.pop('auth_url', None) region_name = kwargs.pop('region_name', CONF.os_region_name) if ctx is None: try: ctx = context.current() except RuntimeError: pass if ctx is not None: kwargs.setdefault('global_request_id', ctx.global_request_id) if auth_url is None: auth_url = "%s://%s:%s/%s/%s" % ( CONF.os_auth_protocol, base.get_os_auth_host(CONF), CONF.os_auth_port, CONF.os_auth_prefix, CONF.os_auth_version) auth = v3.Password(auth_url=auth_url, username=username, password=password, project_name=project_name, user_domain_name=user_domain_name, project_domain_name=project_domain_name) sess = session.Session(auth=auth) # Set accept header on every request to ensure we notify placement # service of our response body media type preferences. headers = {'accept': 'application/json'} kwargs.setdefault('service_type', 'placement') kwargs.setdefault('interface', 'public') kwargs.setdefault('additional_headers', headers) kwargs.setdefault('region_name', region_name) client = adapter.Adapter(sess, **kwargs) return client
def __init__(self, **kwargs): """Description BlazarNovaClient can be used in two ways: from context or kwargs. :param version: service client version which we will use :type version: str :param ctx: request context :type ctx: context object :param auth_token: keystone auth token :type auth_token: str :param endpoint_override: endpoint url which we will use :type endpoint_override: str :param username: username to use with nova client :type username: str :param password: password to use with nova client :type password: str :param user_domain_name: domain name of the user :type user_domain_name: str :param project_name: project name to use with nova client :type project_name: str :param project_domain_name: domain name of the project :type project_domain_name: str :param auth_url: keystone url to authenticate against :type auth_url: str """ ctx = kwargs.pop('ctx', None) auth_token = kwargs.pop('auth_token', None) endpoint_override = kwargs.pop('endpoint_override', None) version = kwargs.pop('version', CONF.nova.nova_client_version) username = kwargs.pop('username', None) password = kwargs.pop('password', None) user_domain_name = kwargs.pop('user_domain_name', None) project_name = kwargs.pop('project_name', None) project_domain_name = kwargs.pop('project_domain_name', None) auth_url = kwargs.pop('auth_url', None) if ctx is None: try: ctx = context.current() except RuntimeError: pass if ctx is not None: auth_token = auth_token or ctx.auth_token endpoint_override = endpoint_override or \ base.url_for(ctx.service_catalog, CONF.nova.compute_service, os_region_name=CONF.os_region_name) auth_url = base.url_for(ctx.service_catalog, CONF.identity_service, os_region_name=CONF.os_region_name) kwargs.setdefault('global_request_id', ctx.global_request_id) if auth_url is None: auth_url = "%s://%s:%s" % (CONF.os_auth_protocol, base.get_os_auth_host(CONF), CONF.os_auth_port) if CONF.os_auth_prefix: auth_url += "/%s" % CONF.os_auth_prefix if username: kwargs.setdefault('username', username) kwargs.setdefault('password', password) kwargs.setdefault('project_name', project_name) kwargs.setdefault('auth_url', auth_url) if "v2.0" not in auth_url: kwargs.setdefault('project_domain_name', project_domain_name) kwargs.setdefault('user_domain_name', user_domain_name) else: auth = token_endpoint.Token(endpoint_override, auth_token) sess = session.Session(auth=auth) kwargs.setdefault('session', sess) kwargs.setdefault('endpoint_override', endpoint_override) kwargs.setdefault('version', version) self.nova = nova_client.Client(**kwargs) self.nova.servers = ServerManager(self.nova) self.exceptions = nova_exception