mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-17 07:36:44 +01:00
* Resolve F541 errors * Resolve F841 errors * Resolve F811 errors * Resolve F901 errors * Resolve E714 errors * Ignore F821 errors for GraphQL mixins * Replace pycodestyle with ruff * Move ignores to ruff.toml
73 lines
2.0 KiB
Python
73 lines
2.0 KiB
Python
import warnings
|
|
|
|
from drf_spectacular.utils import extend_schema_serializer
|
|
|
|
from netbox.api.fields import RelatedObjectCountField
|
|
from netbox.api.serializers import WritableNestedSerializer
|
|
from virtualization.models import *
|
|
from .serializers_.nested import NestedVirtualMachineSerializer, NestedVMInterfaceSerializer
|
|
|
|
__all__ = [
|
|
'NestedClusterGroupSerializer',
|
|
'NestedClusterSerializer',
|
|
'NestedClusterTypeSerializer',
|
|
'NestedVirtualDiskSerializer',
|
|
'NestedVMInterfaceSerializer',
|
|
'NestedVirtualMachineSerializer',
|
|
]
|
|
|
|
# TODO: Remove in v4.2
|
|
warnings.warn(
|
|
"Dedicated nested serializers will be removed in NetBox v4.2. Use Serializer(nested=True) instead.",
|
|
DeprecationWarning
|
|
)
|
|
|
|
|
|
#
|
|
# Clusters
|
|
#
|
|
|
|
@extend_schema_serializer(
|
|
exclude_fields=('cluster_count',),
|
|
)
|
|
class NestedClusterTypeSerializer(WritableNestedSerializer):
|
|
cluster_count = RelatedObjectCountField('clusters')
|
|
|
|
class Meta:
|
|
model = ClusterType
|
|
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'cluster_count']
|
|
|
|
|
|
@extend_schema_serializer(
|
|
exclude_fields=('cluster_count',),
|
|
)
|
|
class NestedClusterGroupSerializer(WritableNestedSerializer):
|
|
cluster_count = RelatedObjectCountField('clusters')
|
|
|
|
class Meta:
|
|
model = ClusterGroup
|
|
fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'cluster_count']
|
|
|
|
|
|
@extend_schema_serializer(
|
|
exclude_fields=('virtualmachine_count',),
|
|
)
|
|
class NestedClusterSerializer(WritableNestedSerializer):
|
|
virtualmachine_count = RelatedObjectCountField('virtual_machines')
|
|
|
|
class Meta:
|
|
model = Cluster
|
|
fields = ['id', 'url', 'display_url', 'display', 'name', 'virtualmachine_count']
|
|
|
|
|
|
#
|
|
# Virtual machines
|
|
#
|
|
|
|
class NestedVirtualDiskSerializer(WritableNestedSerializer):
|
|
virtual_machine = NestedVirtualMachineSerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = VirtualDisk
|
|
fields = ['id', 'url', 'display_url', 'display', 'virtual_machine', 'name', 'size']
|