2017-08-08 16:33:34 -04:00
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
|
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
|
|
2017-08-29 14:24:58 -04:00
|
|
|
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
|
2017-08-29 14:24:58 -04:00
|
|
|
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
|
|
|
|
|
|
|
|
2017-08-29 14:24:58 -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
|
2017-10-09 13:59:53 -04:00
|
|
|
filter_class = filters.InterfaceFilter
|