Просмотр исходного кода

connected_endpoint must be read-only on termination serializers

Jeremy Stretch 7 лет назад
Родитель
Сommit
cd243a90d0

+ 4 - 2
netbox/circuits/api/serializers.py

@@ -3,7 +3,7 @@ from taggit_serializer.serializers import TaggitSerializer, TagListSerializerFie
 
 from circuits.constants import CIRCUIT_STATUS_CHOICES
 from circuits.models import Provider, Circuit, CircuitTermination, CircuitType
-from dcim.api.serializers import NestedCableSerializer, NestedSiteSerializer
+from dcim.api.serializers import NestedCableSerializer, NestedInterfaceSerializer, NestedSiteSerializer
 from extras.api.customfields import CustomFieldModelSerializer
 from tenancy.api.serializers import NestedTenantSerializer
 from utilities.api import ChoiceField, ValidatedModelSerializer, WritableNestedSerializer
@@ -85,12 +85,14 @@ class NestedCircuitSerializer(WritableNestedSerializer):
 class CircuitTerminationSerializer(ValidatedModelSerializer):
     circuit = NestedCircuitSerializer()
     site = NestedSiteSerializer()
+    connected_endpoint = NestedInterfaceSerializer(read_only=True)
     cable = NestedCableSerializer(read_only=True)
 
     class Meta:
         model = CircuitTermination
         fields = [
-            'id', 'circuit', 'term_side', 'site', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info', 'cable',
+            'id', 'circuit', 'term_side', 'site', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info',
+            'connected_endpoint', 'cable',
         ]
 
 

+ 2 - 4
netbox/dcim/api/serializers.py

@@ -584,14 +584,13 @@ class NestedConsoleServerPortSerializer(WritableNestedSerializer):
 
 class ConsolePortSerializer(TaggitSerializer, ValidatedModelSerializer):
     device = NestedDeviceSerializer()
-    connected_endpoint = NestedConsoleServerPortSerializer(required=False, allow_null=True)
+    connected_endpoint = NestedConsoleServerPortSerializer(read_only=True)
     cable = NestedCableSerializer(read_only=True)
     tags = TagListSerializerField(required=False)
 
     class Meta:
         model = ConsolePort
         fields = ['id', 'device', 'name', 'connected_endpoint', 'connection_status', 'cable', 'tags']
-        read_only_fields = ['connected_endpoint']
 
 
 class NestedConsolePortSerializer(TaggitSerializer, ValidatedModelSerializer):
@@ -633,14 +632,13 @@ class NestedPowerOutletSerializer(WritableNestedSerializer):
 
 class PowerPortSerializer(TaggitSerializer, ValidatedModelSerializer):
     device = NestedDeviceSerializer()
-    connected_endpoint = NestedPowerOutletSerializer(required=False, allow_null=True)
+    connected_endpoint = NestedPowerOutletSerializer(read_only=True)
     cable = NestedCableSerializer(read_only=True)
     tags = TagListSerializerField(required=False)
 
     class Meta:
         model = PowerPort
         fields = ['id', 'device', 'name', 'connected_endpoint', 'connection_status', 'cable', 'tags']
-        read_only_fields = ['connected_endpoint']
 
 
 class NestedPowerPortSerializer(TaggitSerializer, ValidatedModelSerializer):

+ 0 - 4
netbox/dcim/tests/test_api.py

@@ -2003,7 +2003,6 @@ class ConsolePortTest(APITestCase):
         data = {
             'device': self.device.pk,
             'name': 'Test Console Port X',
-            'connected_endpoint': consoleserverport.pk,
         }
 
         url = reverse('dcim-api:consoleport-detail', kwargs={'pk': self.consoleport1.pk})
@@ -2013,7 +2012,6 @@ class ConsolePortTest(APITestCase):
         self.assertEqual(ConsolePort.objects.count(), 3)
         consoleport1 = ConsolePort.objects.get(pk=response.data['id'])
         self.assertEqual(consoleport1.name, data['name'])
-        self.assertEqual(consoleport1.connected_endpoint_id, data['connected_endpoint'])
 
     def test_delete_consoleport(self):
 
@@ -2229,7 +2227,6 @@ class PowerPortTest(APITestCase):
         data = {
             'device': self.device.pk,
             'name': 'Test Power Port X',
-            'connected_endpoint': poweroutlet.pk,
         }
 
         url = reverse('dcim-api:powerport-detail', kwargs={'pk': self.powerport1.pk})
@@ -2239,7 +2236,6 @@ class PowerPortTest(APITestCase):
         self.assertEqual(PowerPort.objects.count(), 3)
         powerport1 = PowerPort.objects.get(pk=response.data['id'])
         self.assertEqual(powerport1.name, data['name'])
-        self.assertEqual(powerport1.connected_endpoint_id, data['connected_endpoint'])
 
     def test_delete_powerport(self):