| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from rest_framework import serializers
- from dcim.models import Interface
- from utilities.api import WritableNestedSerializer
- from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
- __all__ = [
- 'NestedClusterGroupSerializer',
- 'NestedClusterSerializer',
- 'NestedClusterTypeSerializer',
- 'NestedInterfaceSerializer',
- 'NestedVirtualMachineSerializer',
- ]
- #
- # Clusters
- #
- class NestedClusterTypeSerializer(WritableNestedSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:clustertype-detail')
- class Meta:
- model = ClusterType
- fields = ['id', 'url', 'name', 'slug']
- class NestedClusterGroupSerializer(WritableNestedSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:clustergroup-detail')
- class Meta:
- model = ClusterGroup
- fields = ['id', 'url', 'name', 'slug']
- class NestedClusterSerializer(WritableNestedSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:cluster-detail')
- class Meta:
- model = Cluster
- fields = ['id', 'url', 'name']
- #
- # Virtual machines
- #
- class NestedVirtualMachineSerializer(WritableNestedSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:virtualmachine-detail')
- class Meta:
- model = VirtualMachine
- fields = ['id', 'url', 'name']
- class NestedInterfaceSerializer(WritableNestedSerializer):
- url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:interface-detail')
- virtual_machine = NestedVirtualMachineSerializer(read_only=True)
- class Meta:
- model = Interface
- fields = ['id', 'url', 'virtual_machine', 'name']
|