old_console/devices/views/device.py
2024-11-02 14:12:45 +03:00

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