Exemple #1
0
 def __init__(self, token):
     """
     Initialize API object.
     :param token: (string) OpenStack Auth Token
     """
     self.ceilometer_conn = CeilometerConnection(token)
class CeilometerApi(object):
    """ Ceilometer Connection Object """
    ceilometer_conn = None

    def __init__(self, token):
        """
        Initialize API object.
        :param token: (string) OpenStack Auth Token
        """
        self.ceilometer_conn = CeilometerConnection(token)

    def get_alarms(self, **kwargs):
        '''
        Get alarm list from Ceilometer
        :param kwargs:
        :return:
        '''
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('alarms', method='GET', url_parameters=url_para_obj)


    def get_meters(self, **kwargs):
        '''
        Get meter list from ceilometer api
        :param kwargs: (Dict) filter criteria
        :return:
        '''
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('meters', method='GET', url_parameters=url_para_obj)


    def get_resources(self, **kwargs):
        '''
        Get resource list from Ceilometer API
        :param kwargs: (Dict) filters.
        :return:
        '''
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('resources', method='GET', url_parameters=url_para_obj)

    def get_resource_detail(self, **kwargs):
        '''
        Get detail of a specified resource
        :param kwargs: (Dict) search filters.
        :return:
        '''
        resource_id = kwargs.pop('resource_id', '')
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('resources/' + resource_id, method='GET', url_parameters=url_para_obj)


    def get_samples(self, meter_name, **kwargs):
        '''
        Get samples of a selected meter
        :param meter_name: (string)
        :param kwargs: (Dict) Query criteria,
                        e.g. ['meter_name': <meter_name>, 'resource_id': <resource_id>]
        :return:
        '''
        kwargs['limit'] = 500
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('meters/' + meter_name,
                                             method='GET',
                                             url_parameters=url_para_obj)

    def delete_alarm(self, alarm_id):
        '''
        Delete alarm through ceilometer api alarm-delete
        :param alarm_id: (string) alarm id
        :return: (Object) success or error
        '''
        try:
            self.get_alarm_detail(alarm_id)
        except err.ResourceNotFound, e:
            raise err.AlarmDoesNotExist(alarm_id)

        return self.ceilometer_conn.get_data('alarms/' + alarm_id,
                                             method='DELETE')
Exemple #3
0
class CeilometerApi(object):
    """ Ceilometer Connection Object """
    ceilometer_conn = None

    def __init__(self, token):
        """
        Initialize API object.
        :param token: (string) OpenStack Auth Token
        """
        self.ceilometer_conn = CeilometerConnection(token)

    def get_alarms(self, **kwargs):
        '''
        Get alarm list from Ceilometer
        :param kwargs:
        :return:
        '''
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('alarms',
                                             method='GET',
                                             url_parameters=url_para_obj)

    def get_meters(self, **kwargs):
        '''
        Get meter list from ceilometer api
        :param kwargs: (Dict) filter criteria
        :return:
        '''
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('meters',
                                             method='GET',
                                             url_parameters=url_para_obj)

    def get_resources(self, **kwargs):
        '''
        Get resource list from Ceilometer API
        :param kwargs: (Dict) filters.
        :return:
        '''
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('resources',
                                             method='GET',
                                             url_parameters=url_para_obj)

    def get_resource_detail(self, **kwargs):
        '''
        Get detail of a specified resource
        :param kwargs: (Dict) search filters.
        :return:
        '''
        resource_id = kwargs.pop('resource_id', '')
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('resources/' + resource_id,
                                             method='GET',
                                             url_parameters=url_para_obj)

    def get_samples(self, meter_name, **kwargs):
        '''
        Get samples of a selected meter
        :param meter_name: (string)
        :param kwargs: (Dict) Query criteria,
                        e.g. ['meter_name': <meter_name>, 'resource_id': <resource_id>]
        :return:
        '''
        kwargs['limit'] = 500
        url_para_obj = kwargs_to_url_parameter_object(**kwargs)
        return self.ceilometer_conn.get_data('meters/' + meter_name,
                                             method='GET',
                                             url_parameters=url_para_obj)

    def delete_alarm(self, alarm_id):
        '''
        Delete alarm through ceilometer api alarm-delete
        :param alarm_id: (string) alarm id
        :return: (Object) success or error
        '''
        try:
            self.get_alarm_detail(alarm_id)
        except err.ResourceNotFound, e:
            raise err.AlarmDoesNotExist(alarm_id)

        return self.ceilometer_conn.get_data('alarms/' + alarm_id,
                                             method='DELETE')
 def __init__(self, token):
     """
     Initialize API object.
     :param token: (string) OpenStack Auth Token
     """
     self.ceilometer_conn = CeilometerConnection(token)