Ejemplo n.º 1
0
def get_alarm_count(request):
    alarm_count = {'alarm': 0, 'ok': 0, 'insufficient_data': 0}
    token_id = request.session['token'].id
    new_ceilometer_api = CeilometerApi(token_id)

    try:
        alarm_count['alarm'] = len(new_ceilometer_api.get_alarms(state='alarm'))
        alarm_count['ok'] = len(new_ceilometer_api.get_alarms(state='ok'))
        alarm_count['insufficient_data'] = len(new_ceilometer_api.get_alarms(
            state='insufficient+data'))
        return HttpResponse(json.dumps(alarm_count), content_type='application/json')
    except KeyError, e:
        return _report_error('ServerSideError: Alarm counting failed')
Ejemplo n.º 2
0
def get_alarm_count(request):
    alarm_count = {'alarm': 0, 'ok': 0, 'insufficient_data': 0}
    token_id = request.session['token'].id
    new_ceilometer_api = CeilometerApi(token_id)

    try:
        alarm_count['alarm'] = len(
            new_ceilometer_api.get_alarms(state='alarm'))
        alarm_count['ok'] = len(new_ceilometer_api.get_alarms(state='ok'))
        alarm_count['insufficient_data'] = len(
            new_ceilometer_api.get_alarms(state='insufficient+data'))
        return HttpResponse(json.dumps(alarm_count),
                            content_type='application/json')
    except KeyError, e:
        return _report_error('ServerSideError: Alarm counting failed')
Ejemplo n.º 3
0
def get_alarms(request):
    '''
    Fetch alarms for a query.
    Filter options supported by Ceilometer includes:
        name: alarm name, user: user_id, project: project_id, meter: meter_name
        enabled, state, alarm_id, alarm_type
    Additional filter enabled by editing pymongo_base:
        resource: resource_id
    :param request:
    :return:
    '''
    arrays, filters = _request_GET_to_dict(request.GET)
    filters = sanitize_arguments(filters, capabilities.ALARM_LIST_CAPABILITIES)
    token_id = request.session['token'].id
    new_ceilometer_api = CeilometerApi(token_id)

    try:
        result = {}
        result['status'] = 'success'
        result['data'] = new_ceilometer_api.get_alarms(**filters)
        result['recordsTotal'] = len(result['data'])
        result['recordsFiltered'] = len(result['data'])
        print 'success'
        return HttpResponse(json.dumps(result),
                            content_type='application/json')
    except (err.ClientSideError, err.ServerSideError), e:
        print 'fail'
        return _report_error(e.message)
Ejemplo n.º 4
0
def get_alarms(request):
    '''
    Fetch alarms for a query.
    Filter options supported by Ceilometer includes:
        name: alarm name, user: user_id, project: project_id, meter: meter_name
        enabled, state, alarm_id, alarm_type
    Additional filter enabled by editing pymongo_base:
        resource: resource_id
    :param request:
    :return:
    '''
    arrays, filters = _request_GET_to_dict(request.GET)
    filters = sanitize_arguments(filters, capabilities.ALARM_LIST_CAPABILITIES)
    token_id = request.session['token'].id
    new_ceilometer_api = CeilometerApi(token_id)

    try:
        result = {}
        result['status'] = 'success'
        result['data'] = new_ceilometer_api.get_alarms(**filters)
        result['recordsTotal'] = len(result['data'])
        result['recordsFiltered'] = len(result['data'])
        print 'success'
        return HttpResponse(json.dumps(result), content_type='application/json')
    except (err.ClientSideError, err.ServerSideError), e:
        print 'fail'
        return _report_error(e.message)