예제 #1
0
    def get(self, request, schema, metric_name):
        try:
            model = get_schema_map()[schema]
            serializer_cls = find_serializer(model, method='GET')
        except Exception as e:
            logger.error(e)
            raise Http404

        metric = get_object_or_404(model, name=metric_name)
        serializer = serializer_cls(instance=metric)
        data = serializer.data
        return Response(data)
예제 #2
0
    def get(self, request, schema, metric_name):
        try:
            model = get_schema_map()[schema]
            serializer_cls = find_serializer(model, method='GET')
        except Exception as e:
            logger.error(e)
            raise Http404

        metric = get_object_or_404(model, name=metric_name)
        serializer = serializer_cls(instance=metric)
        data = serializer.data
        return Response(data)
예제 #3
0
    def post(self, request, schema):
        logger.debug('Received metric POST for schema %s' % schema)
        try:
            model = get_schema_map()[schema]
            get_kwargs = self.get_kwargs(model, request)
            serializer_cls = find_serializer(model, method='POST')
        except Exception as e:
            logger.error(e)
            raise Http404

        metric = get_object_or_404(model, **get_kwargs)

        serialized = serializer_cls(instance=metric, data=request.DATA,
                                    context=request.DATA)
        if serialized.is_valid():
            serialized.save()

            return HttpResponse(status=200)
        else:
            logger.error('serialize error: %s' % serialized.errors)
            return HttpResponse(status=400)
예제 #4
0
    def post(self, request, schema):
        logger.debug('Received metric POST for schema %s' % schema)
        try:
            model = get_schema_map()[schema]
            get_kwargs = self.get_kwargs(model, request)
            serializer_cls = find_serializer(model, method='POST')
        except Exception as e:
            logger.error(e)
            raise Http404

        metric = get_object_or_404(model, **get_kwargs)

        serialized = serializer_cls(instance=metric,
                                    data=request.DATA,
                                    context=request.DATA)
        if serialized.is_valid():
            serialized.save()

            return HttpResponse(status=200)
        else:
            logger.error('serialize error: %s' % serialized.errors)
            return HttpResponse(status=400)