Ejemplo n.º 1
0
def post_alarm(request):
    '''
    Post new alarms through ceilometer API.
    Notice: This api is protected by csrf_protect. 'X-csrf-token' should be added to request headers .
    :param request:
    :return: (JSON) Result of posting new alarm.
                     Return state: 'success' or 'error'
    '''
    token_id = request.session['token'].id
    new_ceilometer_api = CeilometerApi(token_id)

    if request.method == 'POST':
        kwargs = sanitize_arguments(_request_GET_to_dict(request.POST, False),
                                    capabilities.ALARM_CAPABILITIES)
        q = []
        try:
            q[0] = {}
            q[0]['value'] = kwargs.pop('resource_id')
            q[0]['field'] = 'resource_id'
            q[0]['op'] = 'eq'
        except NameError:
            q[0] = {}
        finally:
            kwargs['q'] = q
            result = {}
            try:
                new_ceilometer_api.post_threshold_alarm(**kwargs)
                result['status'] = 'success'
                return HttpResponse(json.dumps(result),
                                    content_type='application/json')
            except (err.ClientSideError, err.ServerSideError), e:
                return _report_error(e.message)
Ejemplo n.º 2
0
def post_alarm(request):
    '''
    Post new alarms through ceilometer API.
    Notice: This api is protected by csrf_protect. 'X-csrf-token' should be added to request headers .
    :param request:
    :return: (JSON) Result of posting new alarm.
                     Return state: 'success' or 'error'
    '''
    token_id = request.session['token'].id
    new_ceilometer_api = CeilometerApi(token_id)

    if request.method == 'POST':
        kwargs = sanitize_arguments(_request_GET_to_dict(request.POST, False),
                                    capabilities.ALARM_CAPABILITIES)
        q = []
        try:
            q[0] = {}
            q[0]['value'] = kwargs.pop('resource_id')
            q[0]['field'] = 'resource_id'
            q[0]['op'] = 'eq'
        except NameError:
            q[0] = {}
        finally:
            kwargs['q'] = q
            result = {}
            try:
                new_ceilometer_api.post_threshold_alarm(**kwargs)
                result['status'] = 'success'
                return HttpResponse(json.dumps(result), content_type='application/json')
            except (err.ClientSideError, err.ServerSideError), e:
                return _report_error(e.message)