示例#1
0
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)
示例#2
0
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)
示例#3
0
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
示例#4
0
    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)