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:
@ -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',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -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):
|
||||||
|
@ -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):
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user