35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
from rest_framework.mixins import RetrieveModelMixin, UpdateModelMixin, ListModelMixin, DestroyModelMixin
|
|
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
|
|
|
from core.mixins import ApiPermissionCheckMixin, ExportToCsvMixin
|
|
from devices.filters import DeviceFilter
|
|
from devices.models.device import Device, DeviceGroup
|
|
from devices.serializers.device import DeviceSerializer, DeviceGroupSerializer
|
|
from devices.services.vector import VectorService
|
|
|
|
|
|
class DeviceViewSet(ApiPermissionCheckMixin,
|
|
ExportToCsvMixin,
|
|
RetrieveModelMixin,
|
|
UpdateModelMixin,
|
|
ListModelMixin,
|
|
DestroyModelMixin,
|
|
GenericViewSet):
|
|
queryset = Device.objects.all()
|
|
serializer_class = DeviceSerializer
|
|
filterset_class = DeviceFilter
|
|
|
|
def perform_update(self, serializer):
|
|
device = serializer.save()
|
|
vector = VectorService(device)
|
|
vector.update_config()
|
|
|
|
def perform_destroy(self, device):
|
|
vector = VectorService(device)
|
|
vector.delete_config()
|
|
device.delete()
|
|
|
|
|
|
class DeviceGroupViewSet(ApiPermissionCheckMixin, ModelViewSet):
|
|
queryset = DeviceGroup.objects.all()
|
|
serializer_class = DeviceGroupSerializer
|