29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from rest_framework.viewsets import ModelViewSet
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from .models import Agent, AgentRun, AgentEvent
|
|
from .serializers import AgentSerializer, AgentRunSerializer, AgentEventSerializer
|
|
from rest_framework.decorators import action
|
|
from rest_framework.response import Response
|
|
|
|
class AgentViewSet(ModelViewSet):
|
|
queryset = Agent.objects.all()
|
|
serializer_class = AgentSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
lookup_field = 'uuid'
|
|
|
|
|
|
class AgentRunViewSet(ModelViewSet):
|
|
queryset = AgentRun.objects.all()
|
|
serializer_class = AgentRunSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
lookup_field = 'uuid'
|
|
|
|
def get_queryset(self):
|
|
return AgentRun.objects.filter(user=self.request.user)
|
|
|
|
@action(detail=True, methods=['get'], url_path='events')
|
|
def events(self, request, uuid=None):
|
|
run = self.get_object()
|
|
events = AgentEvent.objects.filter(execution=run).order_by('timestamp')
|
|
serializer = AgentEventSerializer(events, many=True)
|
|
return Response(serializer.data)
|