mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-19 05:21:55 -06:00
Rename VMInterface serializers
This commit is contained in:
parent
a1b816b403
commit
548127cc88
@ -5,14 +5,8 @@ from drf_yasg.utils import get_serializer_ref_name
|
|||||||
from rest_framework.fields import ChoiceField
|
from rest_framework.fields import ChoiceField
|
||||||
from rest_framework.relations import ManyRelatedField
|
from rest_framework.relations import ManyRelatedField
|
||||||
|
|
||||||
from dcim.api.serializers import InterfaceSerializer as DeviceInterfaceSerializer
|
|
||||||
from extras.api.customfields import CustomFieldsSerializer
|
from extras.api.customfields import CustomFieldsSerializer
|
||||||
from utilities.api import ChoiceField, SerializedPKRelatedField, WritableNestedSerializer
|
from utilities.api import ChoiceField, SerializedPKRelatedField, WritableNestedSerializer
|
||||||
from virtualization.api.serializers import InterfaceSerializer as VirtualMachineInterfaceSerializer
|
|
||||||
|
|
||||||
# this might be ugly, but it limits drf_yasg-specific code to this file
|
|
||||||
DeviceInterfaceSerializer.Meta.ref_name = 'DeviceInterface'
|
|
||||||
VirtualMachineInterfaceSerializer.Meta.ref_name = 'VirtualMachineInterface'
|
|
||||||
|
|
||||||
|
|
||||||
class NetBoxSwaggerAutoSchema(SwaggerAutoSchema):
|
class NetBoxSwaggerAutoSchema(SwaggerAutoSchema):
|
||||||
|
@ -8,7 +8,7 @@ __all__ = [
|
|||||||
'NestedClusterGroupSerializer',
|
'NestedClusterGroupSerializer',
|
||||||
'NestedClusterSerializer',
|
'NestedClusterSerializer',
|
||||||
'NestedClusterTypeSerializer',
|
'NestedClusterTypeSerializer',
|
||||||
'NestedInterfaceSerializer',
|
'NestedVMInterfaceSerializer',
|
||||||
'NestedVirtualMachineSerializer',
|
'NestedVirtualMachineSerializer',
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ class NestedVirtualMachineSerializer(WritableNestedSerializer):
|
|||||||
fields = ['id', 'url', 'name']
|
fields = ['id', 'url', 'name']
|
||||||
|
|
||||||
|
|
||||||
class NestedInterfaceSerializer(WritableNestedSerializer):
|
class NestedVMInterfaceSerializer(WritableNestedSerializer):
|
||||||
url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:vminterface-detail')
|
url = serializers.HyperlinkedIdentityField(view_name='virtualization-api:vminterface-detail')
|
||||||
virtual_machine = NestedVirtualMachineSerializer(read_only=True)
|
virtual_machine = NestedVirtualMachineSerializer(read_only=True)
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ class VirtualMachineWithConfigContextSerializer(VirtualMachineSerializer):
|
|||||||
# VM interfaces
|
# VM interfaces
|
||||||
#
|
#
|
||||||
|
|
||||||
class InterfaceSerializer(TaggedObjectSerializer, ValidatedModelSerializer):
|
class VMInterfaceSerializer(TaggedObjectSerializer, ValidatedModelSerializer):
|
||||||
virtual_machine = NestedVirtualMachineSerializer()
|
virtual_machine = NestedVirtualMachineSerializer()
|
||||||
mode = ChoiceField(choices=InterfaceModeChoices, allow_blank=True, required=False)
|
mode = ChoiceField(choices=InterfaceModeChoices, allow_blank=True, required=False)
|
||||||
untagged_vlan = NestedVLANSerializer(required=False, allow_null=True)
|
untagged_vlan = NestedVLANSerializer(required=False, allow_null=True)
|
||||||
|
@ -77,12 +77,5 @@ class InterfaceViewSet(ModelViewSet):
|
|||||||
).prefetch_related(
|
).prefetch_related(
|
||||||
'virtual_machine', 'tags'
|
'virtual_machine', 'tags'
|
||||||
)
|
)
|
||||||
serializer_class = serializers.InterfaceSerializer
|
serializer_class = serializers.VMInterfaceSerializer
|
||||||
filterset_class = filters.InterfaceFilterSet
|
filterset_class = filters.InterfaceFilterSet
|
||||||
|
|
||||||
def get_serializer_class(self):
|
|
||||||
request = self.get_serializer_context()['request']
|
|
||||||
if request.query_params.get('brief', False):
|
|
||||||
# Override get_serializer_for_model(), which will return the DCIM NestedInterfaceSerializer
|
|
||||||
return serializers.NestedInterfaceSerializer
|
|
||||||
return serializers.InterfaceSerializer
|
|
||||||
|
Loading…
Reference in New Issue
Block a user