mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Cleaned up device component nested serializers
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from circuits.models import Provider, Circuit, CircuitTermination, CircuitType
|
from circuits.models import Provider, Circuit, CircuitTermination, CircuitType
|
||||||
from dcim.api.serializers import SiteNestedSerializer, InterfaceNestedSerializer
|
from dcim.api.serializers import SiteNestedSerializer, NestedInterfaceSerializer
|
||||||
from extras.api.serializers import CustomFieldSerializer
|
from extras.api.serializers import CustomFieldSerializer
|
||||||
from tenancy.api.serializers import TenantNestedSerializer
|
from tenancy.api.serializers import TenantNestedSerializer
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ class CircuitTypeNestedSerializer(CircuitTypeSerializer):
|
|||||||
|
|
||||||
class CircuitTerminationSerializer(serializers.ModelSerializer):
|
class CircuitTerminationSerializer(serializers.ModelSerializer):
|
||||||
site = SiteNestedSerializer()
|
site = SiteNestedSerializer()
|
||||||
interface = InterfaceNestedSerializer()
|
interface = NestedInterfaceSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CircuitTermination
|
model = CircuitTermination
|
||||||
|
@ -191,20 +191,6 @@ class InterfaceTemplateNestedSerializer(serializers.ModelSerializer):
|
|||||||
fields = ['id', 'name', 'form_factor', 'mgmt_only']
|
fields = ['id', 'name', 'form_factor', 'mgmt_only']
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeDetailSerializer(DeviceTypeSerializer):
|
|
||||||
console_port_templates = ConsolePortTemplateNestedSerializer(many=True, read_only=True)
|
|
||||||
cs_port_templates = ConsoleServerPortTemplateNestedSerializer(many=True, read_only=True)
|
|
||||||
power_port_templates = PowerPortTemplateNestedSerializer(many=True, read_only=True)
|
|
||||||
power_outlet_templates = PowerPortTemplateNestedSerializer(many=True, read_only=True)
|
|
||||||
interface_templates = InterfaceTemplateNestedSerializer(many=True, read_only=True)
|
|
||||||
|
|
||||||
class Meta(DeviceTypeSerializer.Meta):
|
|
||||||
fields = ['id', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth',
|
|
||||||
'interface_ordering', 'is_console_server', 'is_pdu', 'is_network_device', 'subdevice_role',
|
|
||||||
'comments', 'custom_fields', 'console_port_templates', 'cs_port_templates', 'power_port_templates',
|
|
||||||
'power_outlet_templates', 'interface_templates']
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device roles
|
# Device roles
|
||||||
#
|
#
|
||||||
@ -302,10 +288,11 @@ class ConsoleServerPortSerializer(serializers.ModelSerializer):
|
|||||||
fields = ['id', 'device', 'name', 'connected_console']
|
fields = ['id', 'device', 'name', 'connected_console']
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortNestedSerializer(ConsoleServerPortSerializer):
|
class NestedConsoleServerPortSerializer(ConsoleServerPortSerializer):
|
||||||
|
|
||||||
class Meta(ConsoleServerPortSerializer.Meta):
|
class Meta:
|
||||||
fields = ['id', 'device', 'name']
|
model = ConsoleServerPort
|
||||||
|
fields = ['id', 'name', 'connected_console']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -314,17 +301,18 @@ class ConsoleServerPortNestedSerializer(ConsoleServerPortSerializer):
|
|||||||
|
|
||||||
class ConsolePortSerializer(serializers.ModelSerializer):
|
class ConsolePortSerializer(serializers.ModelSerializer):
|
||||||
device = DeviceNestedSerializer()
|
device = DeviceNestedSerializer()
|
||||||
cs_port = ConsoleServerPortNestedSerializer()
|
cs_port = ConsoleServerPortSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConsolePort
|
model = ConsolePort
|
||||||
fields = ['id', 'device', 'name', 'cs_port', 'connection_status']
|
fields = ['id', 'device', 'name', 'cs_port', 'connection_status']
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortNestedSerializer(ConsolePortSerializer):
|
class NestedConsolePortSerializer(ConsolePortSerializer):
|
||||||
|
|
||||||
class Meta(ConsolePortSerializer.Meta):
|
class Meta:
|
||||||
fields = ['id', 'device', 'name']
|
model = ConsolePort
|
||||||
|
fields = ['id', 'name', 'cs_port', 'connection_status']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -339,10 +327,11 @@ class PowerOutletSerializer(serializers.ModelSerializer):
|
|||||||
fields = ['id', 'device', 'name', 'connected_port']
|
fields = ['id', 'device', 'name', 'connected_port']
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletNestedSerializer(PowerOutletSerializer):
|
class NestedPowerOutletSerializer(PowerOutletSerializer):
|
||||||
|
|
||||||
class Meta(PowerOutletSerializer.Meta):
|
class Meta:
|
||||||
fields = ['id', 'device', 'name']
|
model = PowerOutlet
|
||||||
|
fields = ['id', 'name', 'connected_port']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -351,17 +340,18 @@ class PowerOutletNestedSerializer(PowerOutletSerializer):
|
|||||||
|
|
||||||
class PowerPortSerializer(serializers.ModelSerializer):
|
class PowerPortSerializer(serializers.ModelSerializer):
|
||||||
device = DeviceNestedSerializer()
|
device = DeviceNestedSerializer()
|
||||||
power_outlet = PowerOutletNestedSerializer()
|
power_outlet = PowerOutletSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PowerPort
|
model = PowerPort
|
||||||
fields = ['id', 'device', 'name', 'power_outlet', 'connection_status']
|
fields = ['id', 'device', 'name', 'power_outlet', 'connection_status']
|
||||||
|
|
||||||
|
|
||||||
class PowerPortNestedSerializer(PowerPortSerializer):
|
class NestedPowerPortSerializer(PowerPortSerializer):
|
||||||
|
|
||||||
class Meta(PowerPortSerializer.Meta):
|
class Meta:
|
||||||
fields = ['id', 'device', 'name']
|
model = PowerPort
|
||||||
|
fields = ['id', 'name', 'power_outlet', 'connection_status']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -377,15 +367,14 @@ class InterfaceSerializer(serializers.ModelSerializer):
|
|||||||
fields = ['id', 'device', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected']
|
fields = ['id', 'device', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected']
|
||||||
|
|
||||||
|
|
||||||
class InterfaceNestedSerializer(InterfaceSerializer):
|
class NestedInterfaceSerializer(InterfaceSerializer):
|
||||||
form_factor = serializers.ReadOnlyField(source='get_form_factor_display')
|
|
||||||
|
|
||||||
class Meta(InterfaceSerializer.Meta):
|
class Meta:
|
||||||
fields = ['id', 'device', 'name']
|
model = Interface
|
||||||
|
fields = ['id', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected']
|
||||||
|
|
||||||
|
|
||||||
class InterfaceDetailSerializer(InterfaceSerializer):
|
class InterfaceDetailSerializer(InterfaceSerializer):
|
||||||
connected_interface = InterfaceSerializer()
|
|
||||||
|
|
||||||
class Meta(InterfaceSerializer.Meta):
|
class Meta(InterfaceSerializer.Meta):
|
||||||
fields = ['id', 'device', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected',
|
fields = ['id', 'device', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected',
|
||||||
@ -398,26 +387,20 @@ class InterfaceDetailSerializer(InterfaceSerializer):
|
|||||||
|
|
||||||
class DeviceBaySerializer(serializers.ModelSerializer):
|
class DeviceBaySerializer(serializers.ModelSerializer):
|
||||||
device = DeviceNestedSerializer()
|
device = DeviceNestedSerializer()
|
||||||
|
installed_device = DeviceNestedSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = DeviceBay
|
model = DeviceBay
|
||||||
fields = ['id', 'device', 'name']
|
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayNestedSerializer(DeviceBaySerializer):
|
|
||||||
installed_device = DeviceNestedSerializer()
|
|
||||||
|
|
||||||
class Meta(DeviceBaySerializer.Meta):
|
|
||||||
fields = ['id', 'name', 'installed_device']
|
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayDetailSerializer(DeviceBaySerializer):
|
|
||||||
installed_device = DeviceNestedSerializer()
|
|
||||||
|
|
||||||
class Meta(DeviceBaySerializer.Meta):
|
|
||||||
fields = ['id', 'device', 'name', 'installed_device']
|
fields = ['id', 'device', 'name', 'installed_device']
|
||||||
|
|
||||||
|
|
||||||
|
class NestedDeviceBaySerializer(DeviceBaySerializer):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = DeviceBay
|
||||||
|
fields = ['id', 'name', 'installed_device']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Modules
|
# Modules
|
||||||
#
|
#
|
||||||
@ -431,10 +414,11 @@ class ModuleSerializer(serializers.ModelSerializer):
|
|||||||
fields = ['id', 'device', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered']
|
fields = ['id', 'device', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered']
|
||||||
|
|
||||||
|
|
||||||
class ModuleNestedSerializer(ModuleSerializer):
|
class NestedModuleSerializer(ModuleSerializer):
|
||||||
|
|
||||||
class Meta(ModuleSerializer.Meta):
|
class Meta:
|
||||||
fields = ['id', 'device', 'parent', 'name']
|
model = Module
|
||||||
|
fields = ['id', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -107,11 +107,6 @@ class DeviceTypeViewSet(CustomFieldModelViewSet):
|
|||||||
queryset = DeviceType.objects.select_related('manufacturer')
|
queryset = DeviceType.objects.select_related('manufacturer')
|
||||||
filter_class = filters.DeviceTypeFilter
|
filter_class = filters.DeviceTypeFilter
|
||||||
|
|
||||||
def get_serializer_class(self):
|
|
||||||
if self.action == 'retrieve':
|
|
||||||
return serializers.DeviceTypeDetailSerializer
|
|
||||||
return serializers.DeviceTypeSerializer
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Device Roles
|
# Device Roles
|
||||||
@ -156,7 +151,7 @@ class ConsolePortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin
|
|||||||
|
|
||||||
|
|
||||||
class NestedConsolePortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedConsolePortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ConsolePortSerializer
|
serializer_class = serializers.NestedConsolePortSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
@ -173,7 +168,7 @@ class ConsoleServerPortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyMode
|
|||||||
|
|
||||||
|
|
||||||
class NestedConsoleServerPortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedConsoleServerPortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ConsoleServerPortSerializer
|
serializer_class = serializers.NestedConsoleServerPortSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
@ -190,7 +185,7 @@ class PowerPortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
|
|||||||
|
|
||||||
|
|
||||||
class NestedPowerPortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedPowerPortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.PowerPortSerializer
|
serializer_class = serializers.NestedPowerPortSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
@ -207,7 +202,7 @@ class PowerOutletViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin
|
|||||||
|
|
||||||
|
|
||||||
class NestedPowerOutletViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedPowerOutletViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.PowerOutletSerializer
|
serializer_class = serializers.NestedPowerOutletSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
@ -224,7 +219,7 @@ class InterfaceViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
|
|||||||
|
|
||||||
|
|
||||||
class NestedInterfaceViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedInterfaceViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.InterfaceSerializer
|
serializer_class = serializers.NestedInterfaceSerializer
|
||||||
filter_class = filters.InterfaceFilter
|
filter_class = filters.InterfaceFilter
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
@ -243,7 +238,7 @@ class DeviceBayViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin,
|
|||||||
|
|
||||||
|
|
||||||
class NestedDeviceBayViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedDeviceBayViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.DeviceBayNestedSerializer
|
serializer_class = serializers.NestedDeviceBaySerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
@ -260,7 +255,7 @@ class ModuleViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, Gen
|
|||||||
|
|
||||||
|
|
||||||
class NestedModuleViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
class NestedModuleViewSet(CreateModelMixin, ListModelMixin, GenericViewSet):
|
||||||
serializer_class = serializers.ModuleSerializer
|
serializer_class = serializers.NestedModuleSerializer
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
device = get_object_or_404(Device, pk=self.kwargs['pk'])
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from dcim.api.serializers import DeviceNestedSerializer, InterfaceNestedSerializer, SiteNestedSerializer
|
from dcim.api.serializers import DeviceNestedSerializer, NestedInterfaceSerializer, SiteNestedSerializer
|
||||||
from extras.api.serializers import CustomFieldSerializer
|
from extras.api.serializers import CustomFieldSerializer
|
||||||
from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
|
from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF
|
||||||
from tenancy.api.serializers import TenantNestedSerializer
|
from tenancy.api.serializers import TenantNestedSerializer
|
||||||
@ -155,7 +155,7 @@ class PrefixNestedSerializer(PrefixSerializer):
|
|||||||
class IPAddressSerializer(CustomFieldSerializer, serializers.ModelSerializer):
|
class IPAddressSerializer(CustomFieldSerializer, serializers.ModelSerializer):
|
||||||
vrf = VRFTenantSerializer()
|
vrf = VRFTenantSerializer()
|
||||||
tenant = TenantNestedSerializer()
|
tenant = TenantNestedSerializer()
|
||||||
interface = InterfaceNestedSerializer()
|
interface = NestedInterfaceSerializer()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = IPAddress
|
model = IPAddress
|
||||||
|
Reference in New Issue
Block a user