def _external_sign_client(verify=True): sign = cfg.CONF.sign return client.Client(auth_plugin='sign', verify=verify, access_key_id=sign.access_key_id, access_key=sign.access_key, sign_type=sign.sign_type, endpoint=sign.endpoint)
def _external_token_client(verify=True): token = cfg.CONF.token return client.Client(auth_plugin='token', verify=verify, user_domain_name=token.user_domain_name, username=token.username, password=token.password, project_domain_name=token.project_domain_name, project_name=token.project_name, auth_url=token.auth_url, service_type=token.service_type)
def get_client(): """Only can be used after CONF is initialized """ from gringotts.services import keystone from gringotts.client.v2 import client ks_cfg = cfg.CONF.keystone_authtoken auth_url = keystone.get_auth_url() try: c = client.Client(username=ks_cfg.admin_user, password=ks_cfg.admin_password, project_name=ks_cfg.admin_tenant_name, auth_url=auth_url) return c except (exception.Unauthorized, exception.AuthorizationFailure): _logger.exception("Billing Authorization Failed - rejecting request") raise except Exception as e: msg = 'Fail to initialize the billing client, for the reason: %s' % e _logger.exception(msg) raise
def __init__(self, app, conf): self.app = app self.conf = conf identity_uri = self._conf_get('identity_uri') if not identity_uri: auth_host = self._conf_get('auth_host') auth_port = self._conf_get('auth_port') auth_protocol = self._conf_get('auth_protocol') identity_uri = '%s://%s:%s' % (auth_protocol, auth_host, auth_port) else: identity_uri = identity_uri.rstrip('/') # force to use v3 api self.auth_url = '%s/v3' % identity_uri self.admin_user = self._conf_get('admin_user') self.admin_password = self._conf_get('admin_password') self.admin_tenant_name = self._conf_get('admin_tenant_name') self.black_list = [ self.create_resource_action, self.delete_resource_action, self.no_billing_resource_action, ] self.resource_regexs = [] self.no_billing_resource_regexs = [] self.resize_resource_actions = [] self.stop_resource_actions = [] self.start_resource_actions = [] # NOTE(chengkun): now restore resource only use in Instance self.restore_resource_actions = [] self.no_billing_resource_actions = [] # make billing client self.gclient = client.Client(username=self.admin_user, password=self.admin_password, project_name=self.admin_tenant_name, auth_url=self.auth_url)