diff --git a/netbox/circuits/api/serializers.py b/netbox/circuits/api/serializers.py index ba1ba80a9..4cdfcf91e 100644 --- a/netbox/circuits/api/serializers.py +++ b/netbox/circuits/api/serializers.py @@ -1,7 +1,7 @@ from rest_framework import serializers 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 tenancy.api.serializers import TenantNestedSerializer @@ -47,7 +47,7 @@ class CircuitTypeNestedSerializer(CircuitTypeSerializer): class CircuitTerminationSerializer(serializers.ModelSerializer): site = SiteNestedSerializer() - interface = InterfaceNestedSerializer() + interface = NestedInterfaceSerializer() class Meta: model = CircuitTermination diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index f81f299af..64b16999a 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -191,20 +191,6 @@ class InterfaceTemplateNestedSerializer(serializers.ModelSerializer): 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 # @@ -302,10 +288,11 @@ class ConsoleServerPortSerializer(serializers.ModelSerializer): fields = ['id', 'device', 'name', 'connected_console'] -class ConsoleServerPortNestedSerializer(ConsoleServerPortSerializer): +class NestedConsoleServerPortSerializer(ConsoleServerPortSerializer): - class Meta(ConsoleServerPortSerializer.Meta): - fields = ['id', 'device', 'name'] + class Meta: + model = ConsoleServerPort + fields = ['id', 'name', 'connected_console'] # @@ -314,17 +301,18 @@ class ConsoleServerPortNestedSerializer(ConsoleServerPortSerializer): class ConsolePortSerializer(serializers.ModelSerializer): device = DeviceNestedSerializer() - cs_port = ConsoleServerPortNestedSerializer() + cs_port = ConsoleServerPortSerializer() class Meta: model = ConsolePort fields = ['id', 'device', 'name', 'cs_port', 'connection_status'] -class ConsolePortNestedSerializer(ConsolePortSerializer): +class NestedConsolePortSerializer(ConsolePortSerializer): - class Meta(ConsolePortSerializer.Meta): - fields = ['id', 'device', 'name'] + class Meta: + model = ConsolePort + fields = ['id', 'name', 'cs_port', 'connection_status'] # @@ -339,10 +327,11 @@ class PowerOutletSerializer(serializers.ModelSerializer): fields = ['id', 'device', 'name', 'connected_port'] -class PowerOutletNestedSerializer(PowerOutletSerializer): +class NestedPowerOutletSerializer(PowerOutletSerializer): - class Meta(PowerOutletSerializer.Meta): - fields = ['id', 'device', 'name'] + class Meta: + model = PowerOutlet + fields = ['id', 'name', 'connected_port'] # @@ -351,17 +340,18 @@ class PowerOutletNestedSerializer(PowerOutletSerializer): class PowerPortSerializer(serializers.ModelSerializer): device = DeviceNestedSerializer() - power_outlet = PowerOutletNestedSerializer() + power_outlet = PowerOutletSerializer() class Meta: model = PowerPort fields = ['id', 'device', 'name', 'power_outlet', 'connection_status'] -class PowerPortNestedSerializer(PowerPortSerializer): +class NestedPowerPortSerializer(PowerPortSerializer): - class Meta(PowerPortSerializer.Meta): - fields = ['id', 'device', 'name'] + class Meta: + 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'] -class InterfaceNestedSerializer(InterfaceSerializer): - form_factor = serializers.ReadOnlyField(source='get_form_factor_display') +class NestedInterfaceSerializer(InterfaceSerializer): - class Meta(InterfaceSerializer.Meta): - fields = ['id', 'device', 'name'] + class Meta: + model = Interface + fields = ['id', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected'] class InterfaceDetailSerializer(InterfaceSerializer): - connected_interface = InterfaceSerializer() class Meta(InterfaceSerializer.Meta): fields = ['id', 'device', 'name', 'form_factor', 'mac_address', 'mgmt_only', 'description', 'is_connected', @@ -398,26 +387,20 @@ class InterfaceDetailSerializer(InterfaceSerializer): class DeviceBaySerializer(serializers.ModelSerializer): device = DeviceNestedSerializer() + installed_device = DeviceNestedSerializer() class Meta: 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'] +class NestedDeviceBaySerializer(DeviceBaySerializer): + + class Meta: + model = DeviceBay + fields = ['id', 'name', 'installed_device'] + + # # Modules # @@ -431,10 +414,11 @@ class ModuleSerializer(serializers.ModelSerializer): fields = ['id', 'device', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered'] -class ModuleNestedSerializer(ModuleSerializer): +class NestedModuleSerializer(ModuleSerializer): - class Meta(ModuleSerializer.Meta): - fields = ['id', 'device', 'parent', 'name'] + class Meta: + model = Module + fields = ['id', 'parent', 'name', 'manufacturer', 'part_id', 'serial', 'discovered'] # diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 2e8a4d1d0..8d4eb13c3 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -107,11 +107,6 @@ class DeviceTypeViewSet(CustomFieldModelViewSet): queryset = DeviceType.objects.select_related('manufacturer') filter_class = filters.DeviceTypeFilter - def get_serializer_class(self): - if self.action == 'retrieve': - return serializers.DeviceTypeDetailSerializer - return serializers.DeviceTypeSerializer - # # Device Roles @@ -156,7 +151,7 @@ class ConsolePortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin class NestedConsolePortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): - serializer_class = serializers.ConsolePortSerializer + serializer_class = serializers.NestedConsolePortSerializer def get_queryset(self): device = get_object_or_404(Device, pk=self.kwargs['pk']) @@ -173,7 +168,7 @@ class ConsoleServerPortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyMode class NestedConsoleServerPortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): - serializer_class = serializers.ConsoleServerPortSerializer + serializer_class = serializers.NestedConsoleServerPortSerializer def get_queryset(self): device = get_object_or_404(Device, pk=self.kwargs['pk']) @@ -190,7 +185,7 @@ class PowerPortViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, class NestedPowerPortViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): - serializer_class = serializers.PowerPortSerializer + serializer_class = serializers.NestedPowerPortSerializer def get_queryset(self): device = get_object_or_404(Device, pk=self.kwargs['pk']) @@ -207,7 +202,7 @@ class PowerOutletViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin class NestedPowerOutletViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): - serializer_class = serializers.PowerOutletSerializer + serializer_class = serializers.NestedPowerOutletSerializer def get_queryset(self): device = get_object_or_404(Device, pk=self.kwargs['pk']) @@ -224,7 +219,7 @@ class InterfaceViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, class NestedInterfaceViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): - serializer_class = serializers.InterfaceSerializer + serializer_class = serializers.NestedInterfaceSerializer filter_class = filters.InterfaceFilter def get_queryset(self): @@ -243,7 +238,7 @@ class DeviceBayViewSet(RetrieveModelMixin, UpdateModelMixin, DestroyModelMixin, class NestedDeviceBayViewSet(CreateModelMixin, ListModelMixin, GenericViewSet): - serializer_class = serializers.DeviceBayNestedSerializer + serializer_class = serializers.NestedDeviceBaySerializer def get_queryset(self): 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): - serializer_class = serializers.ModuleSerializer + serializer_class = serializers.NestedModuleSerializer def get_queryset(self): device = get_object_or_404(Device, pk=self.kwargs['pk']) diff --git a/netbox/ipam/api/serializers.py b/netbox/ipam/api/serializers.py index e3f902605..4b69711cf 100644 --- a/netbox/ipam/api/serializers.py +++ b/netbox/ipam/api/serializers.py @@ -1,6 +1,6 @@ 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 ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, Service, VLAN, VLANGroup, VRF from tenancy.api.serializers import TenantNestedSerializer @@ -155,7 +155,7 @@ class PrefixNestedSerializer(PrefixSerializer): class IPAddressSerializer(CustomFieldSerializer, serializers.ModelSerializer): vrf = VRFTenantSerializer() tenant = TenantNestedSerializer() - interface = InterfaceNestedSerializer() + interface = NestedInterfaceSerializer() class Meta: model = IPAddress