mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-19 09:53:34 -06:00
Add graphs endpoint to VMInterfaceViewSet
This commit is contained in:
parent
6ecbf45974
commit
89ff59d048
@ -1,7 +1,12 @@
|
||||
from django.db.models import Count
|
||||
from django.shortcuts import get_object_or_404
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
|
||||
from dcim.models import Device
|
||||
from extras.api.serializers import RenderedGraphSerializer
|
||||
from extras.api.views import CustomFieldModelViewSet
|
||||
from extras.models import Graph
|
||||
from utilities.api import ModelViewSet
|
||||
from utilities.utils import get_subquery
|
||||
from virtualization import filters
|
||||
@ -79,3 +84,13 @@ class VMInterfaceViewSet(ModelViewSet):
|
||||
)
|
||||
serializer_class = serializers.VMInterfaceSerializer
|
||||
filterset_class = filters.VMInterfaceFilterSet
|
||||
|
||||
@action(detail=True)
|
||||
def graphs(self, request, pk):
|
||||
"""
|
||||
A convenience method for rendering graphs for a particular VM interface.
|
||||
"""
|
||||
vminterface = get_object_or_404(self.queryset, pk=pk)
|
||||
queryset = Graph.objects.restrict(request.user).filter(type__model='vminterface')
|
||||
serializer = RenderedGraphSerializer(queryset, many=True, context={'graphed_object': vminterface})
|
||||
return Response(serializer.data)
|
||||
|
Loading…
Reference in New Issue
Block a user