1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

50 lines
1.6 KiB
Python
Raw Normal View History

2017-08-08 16:33:34 -04:00
from __future__ import unicode_literals
from rest_framework.viewsets import ModelViewSet
from dcim.models import Interface
2017-08-08 16:33:34 -04:00
from extras.api.views import CustomFieldModelViewSet
from utilities.api import WritableSerializerMixin
2017-08-16 17:00:17 -04:00
from virtualization import filters
from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
2017-08-08 16:33:34 -04:00
from . import serializers
#
# Clusters
#
class ClusterTypeViewSet(ModelViewSet):
queryset = ClusterType.objects.all()
serializer_class = serializers.ClusterTypeSerializer
class ClusterGroupViewSet(ModelViewSet):
queryset = ClusterGroup.objects.all()
serializer_class = serializers.ClusterGroupSerializer
class ClusterViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
queryset = Cluster.objects.select_related('type', 'group')
serializer_class = serializers.ClusterSerializer
write_serializer_class = serializers.WritableClusterSerializer
2017-08-16 17:00:17 -04:00
filter_class = filters.ClusterFilter
2017-08-08 16:33:34 -04:00
#
# Virtual machines
#
class VirtualMachineViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
queryset = VirtualMachine.objects.all()
serializer_class = serializers.VirtualMachineSerializer
write_serializer_class = serializers.WritableVirtualMachineSerializer
2017-08-16 17:00:17 -04:00
filter_class = filters.VirtualMachineFilter
2017-08-08 16:33:34 -04:00
class InterfaceViewSet(WritableSerializerMixin, ModelViewSet):
queryset = Interface.objects.filter(virtual_machine__isnull=False).select_related('virtual_machine')
serializer_class = serializers.InterfaceSerializer
write_serializer_class = serializers.WritableInterfaceSerializer
filter_class = filters.InterfaceFilter