mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-26 15:17:45 -06:00
Closes #17143: Deprecate the use of dedicated nested API serializers
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
import warnings
|
||||
|
||||
from drf_spectacular.utils import extend_schema_serializer
|
||||
from rest_framework import serializers
|
||||
|
||||
from netbox.api.fields import RelatedObjectCountField
|
||||
from netbox.api.serializers import WritableNestedSerializer
|
||||
from virtualization.models import *
|
||||
from .serializers_.nested import NestedVirtualMachineSerializer, NestedVMInterfaceSerializer
|
||||
|
||||
__all__ = [
|
||||
'NestedClusterGroupSerializer',
|
||||
@@ -14,11 +16,17 @@ __all__ = [
|
||||
'NestedVirtualMachineSerializer',
|
||||
]
|
||||
|
||||
# TODO: Remove in v4.2
|
||||
warnings.warn(
|
||||
f"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
|
||||
DeprecationWarning
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
# Clusters
|
||||
#
|
||||
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('cluster_count',),
|
||||
)
|
||||
@@ -56,21 +64,6 @@ class NestedClusterSerializer(WritableNestedSerializer):
|
||||
# Virtual machines
|
||||
#
|
||||
|
||||
class NestedVirtualMachineSerializer(WritableNestedSerializer):
|
||||
|
||||
class Meta:
|
||||
model = VirtualMachine
|
||||
fields = ['id', 'url', 'display_url', 'display', 'name']
|
||||
|
||||
|
||||
class NestedVMInterfaceSerializer(WritableNestedSerializer):
|
||||
virtual_machine = NestedVirtualMachineSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = VMInterface
|
||||
fields = ['id', 'url', 'display_url', 'display', 'virtual_machine', 'name']
|
||||
|
||||
|
||||
class NestedVirtualDiskSerializer(WritableNestedSerializer):
|
||||
virtual_machine = NestedVirtualMachineSerializer(read_only=True)
|
||||
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
from .serializers_.clusters import *
|
||||
from .serializers_.virtualmachines import *
|
||||
from .nested_serializers import *
|
||||
|
||||
22
netbox/virtualization/api/serializers_/nested.py
Normal file
22
netbox/virtualization/api/serializers_/nested.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from netbox.api.serializers import WritableNestedSerializer
|
||||
from virtualization import models
|
||||
|
||||
__all__ = (
|
||||
'NestedVirtualMachineSerializer',
|
||||
'NestedVMInterfaceSerializer',
|
||||
)
|
||||
|
||||
|
||||
class NestedVirtualMachineSerializer(WritableNestedSerializer):
|
||||
|
||||
class Meta:
|
||||
model = models.VirtualMachine
|
||||
fields = ['id', 'url', 'display_url', 'display', 'name']
|
||||
|
||||
|
||||
class NestedVMInterfaceSerializer(WritableNestedSerializer):
|
||||
virtual_machine = NestedVirtualMachineSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.VMInterface
|
||||
fields = ['id', 'url', 'display_url', 'display', 'virtual_machine', 'name']
|
||||
@@ -18,7 +18,7 @@ from virtualization.choices import *
|
||||
from virtualization.models import VirtualDisk, VirtualMachine, VMInterface
|
||||
from vpn.api.serializers_.l2vpn import L2VPNTerminationSerializer
|
||||
from .clusters import ClusterSerializer
|
||||
from ..nested_serializers import *
|
||||
from .nested import NestedVMInterfaceSerializer
|
||||
|
||||
__all__ = (
|
||||
'VMInterfaceSerializer',
|
||||
|
||||
Reference in New Issue
Block a user