1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

connected_endpoint must be read-only on termination serializers

This commit is contained in:
Jeremy Stretch
2018-10-31 16:12:36 -04:00
parent 4e9ace39ce
commit cd243a90d0
3 changed files with 6 additions and 10 deletions

View File

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

View File

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

View File

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