def _construct_http_client(**kwargs):
    kwargs = kwargs.copy()
    if kwargs.get('session') is not None:
        # Drop legacy options
        for opt in LEGACY_OPTS:
            kwargs.pop(opt, None)
        # Drop aodh_endpoint from kwargs
        kwargs.pop('aodh_endpoint', None)

        return SessionClient(
            session=kwargs.pop('session'),
            service_type=kwargs.pop('service_type', 'metering') or 'metering',
            interface=kwargs.pop('interface',
                                 kwargs.pop('endpoint_type', 'publicURL')),
            region_name=kwargs.pop('region_name', None),
            user_agent=kwargs.pop('user_agent', 'python-ceilometerclient'),
            auth=kwargs.get('auth'),
            timings=kwargs.pop('timings', None),
            **kwargs)
    else:
        return client.BaseClient(
            client.HTTPClient(auth_plugin=kwargs.get('auth_plugin'),
                              region_name=kwargs.get('region_name'),
                              endpoint_type=kwargs.get('endpoint_type'),
                              original_ip=kwargs.get('original_ip'),
                              verify=kwargs.get('verify'),
                              cert=kwargs.get('cert'),
                              timeout=kwargs.get('timeout'),
                              timings=kwargs.get('timings'),
                              keyring_saver=kwargs.get('keyring_saver'),
                              debug=kwargs.get('debug'),
                              user_agent=kwargs.get('user_agent'),
                              http=kwargs.get('http')))
Example #2
0
    def __init__(self, *args, **kwargs):
        """Initialize a new client for the Ceilometer v1 API."""
        self.auth_plugin = kwargs.get('auth_plugin') \
            or ceiloclient.get_auth_plugin(*args, **kwargs)
        self.client = client.HTTPClient(
            auth_plugin=self.auth_plugin,
            region_name=kwargs.get('region_name'),
            endpoint_type=kwargs.get('endpoint_type'),
            original_ip=kwargs.get('original_ip'),
            verify=kwargs.get('verify'),
            cert=kwargs.get('cert'),
            timeout=kwargs.get('timeout'),
            timings=kwargs.get('timings'),
            keyring_saver=kwargs.get('keyring_saver'),
            debug=kwargs.get('debug'),
            user_agent=kwargs.get('user_agent'),
            http=kwargs.get('http')
        )

        self.http_client = client.BaseClient(self.client)
        self.meters = meters.MeterManager(self.http_client)
        self.samples = meters.SampleManager(self.http_client)
        self.users = meters.UserManager(self.http_client)
        self.resources = meters.ResourceManager(self.http_client)
        self.projects = meters.ProjectManager(self.http_client)
 def _get_alarm_client(self, **kwargs):
     """Get client for alarm manager that redirect to aodh."""
     self.alarm_auth_plugin = copy.deepcopy(self.auth_plugin)
     try:
         # NOTE(liusheng): Getting the aodh's endpoint to rewrite
         # the endpoint of alarm auth_plugin.
         self.alarm_auth_plugin.redirect_to_aodh_endpoint(
             kwargs.get('timeout'))
     except exceptions.EndpointNotFound:
         return self.http_client, False
     alarm_client = client.HTTPClient(
         auth_plugin=self.alarm_auth_plugin,
         region_name=kwargs.get('region_name'),
         endpoint_type=kwargs.get('endpoint_type'),
         original_ip=kwargs.get('original_ip'),
         verify=kwargs.get('verify'),
         cert=kwargs.get('cert'),
         timeout=kwargs.get('timeout'),
         timings=kwargs.get('timings'),
         keyring_saver=kwargs.get('keyring_saver'),
         debug=kwargs.get('debug'),
         user_agent=kwargs.get('user_agent'),
         http=kwargs.get('http')
     )
     return client.BaseClient(alarm_client), True
    def __init__(self, *args, **kwargs):
        """Initialize a new client for the Ceilometer v2 API."""
        self.auth_plugin = kwargs.get('auth_plugin') \
            or ceiloclient.get_auth_plugin(*args, **kwargs)
        self.client = client.HTTPClient(
            auth_plugin=self.auth_plugin,
            region_name=kwargs.get('region_name'),
            endpoint_type=kwargs.get('endpoint_type'),
            original_ip=kwargs.get('original_ip'),
            verify=kwargs.get('verify'),
            cert=kwargs.get('cert'),
            timeout=kwargs.get('timeout'),
            timings=kwargs.get('timings'),
            keyring_saver=kwargs.get('keyring_saver'),
            debug=kwargs.get('debug'),
            user_agent=kwargs.get('user_agent'),
            http=kwargs.get('http'))

        self.http_client = client.BaseClient(self.client)
        self.meters = meters.MeterManager(self.http_client)
        self.samples = samples.SampleManager(self.http_client)
        self.statistics = statistics.StatisticsManager(self.http_client)
        self.resources = resources.ResourceManager(self.http_client)
        self.alarms = alarms.AlarmManager(self.http_client)
        self.events = events.EventManager(self.http_client)
        self.event_types = event_types.EventTypeManager(self.http_client)
        self.traits = traits.TraitManager(self.http_client)
        self.trait_descriptions = trait_descriptions.\
            TraitDescriptionManager(self.http_client)

        self.query_samples = query.QuerySamplesManager(self.http_client)
        self.query_alarms = query.QueryAlarmsManager(self.http_client)
        self.query_alarm_history = query.QueryAlarmHistoryManager(
            self.http_client)
Example #5
0
    def _get_alarm_client(self, **kwargs):
        """Get client for alarm manager that redirect to aodh."""

        self.alarm_auth_plugin = copy.deepcopy(self.auth_plugin)
        aodh_endpoint = kwargs.get('aodh_endpoint')
        if aodh_endpoint:
            self.alarm_auth_plugin.opts['endpoint'] = aodh_endpoint
        elif not kwargs.get('auth_url'):
            # Users may just provided ceilometer endpoint and token, and no
            # auth_url, in this case, we need 'aodh_endpoint' also provided,
            # otherwise we cannot get aodh endpoint from keystone, and assume
            # aodh is unavailable.
            return self.http_client, False
        else:
            try:
                # NOTE(liusheng): Getting the aodh's endpoint to rewrite
                # the endpoint of alarm auth_plugin.
                self.alarm_auth_plugin.redirect_to_aodh_endpoint(
                    kwargs.get('timeout'))
            except exceptions.EndpointNotFound:
                return self.http_client, False
        alarm_client = client.HTTPClient(
            auth_plugin=self.alarm_auth_plugin,
            region_name=kwargs.get('region_name'),
            endpoint_type=kwargs.get('endpoint_type'),
            original_ip=kwargs.get('original_ip'),
            verify=kwargs.get('verify'),
            cert=kwargs.get('cert'),
            timeout=kwargs.get('timeout'),
            timings=kwargs.get('timings'),
            keyring_saver=kwargs.get('keyring_saver'),
            debug=kwargs.get('debug'),
            user_agent=kwargs.get('user_agent'),
            http=kwargs.get('http'))
        return client.BaseClient(alarm_client), True