Parcourir la source

Cleaned up device component nested serializers

Jeremy Stretch il y a 8 ans
Parent
commit
ddc2c8d110

+ 2 - 2
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

+ 31 - 47
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']
+        fields = ['id', 'device', 'name', 'installed_device']
 
 
-class DeviceBayNestedSerializer(DeviceBaySerializer):
-    installed_device = DeviceNestedSerializer()
+class NestedDeviceBaySerializer(DeviceBaySerializer):
 
-    class Meta(DeviceBaySerializer.Meta):
+    class Meta:
+        model = DeviceBay
         fields = ['id', 'name', 'installed_device']
 
 
-class DeviceBayDetailSerializer(DeviceBaySerializer):
-    installed_device = DeviceNestedSerializer()
-
-    class Meta(DeviceBaySerializer.Meta):
-        fields = ['id', 'device', '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']
 
 
 #

+ 7 - 12
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'])

+ 2 - 2
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