diff --git a/docs/release-notes/version-2.10.md b/docs/release-notes/version-2.10.md index 0e636fc45..26b13477a 100644 --- a/docs/release-notes/version-2.10.md +++ b/docs/release-notes/version-2.10.md @@ -57,6 +57,7 @@ All end-to-end cable paths are now cached using the new CablePath model. This al * [#4360](https://github.com/netbox-community/netbox/issues/4360) - Remove support for the Django template language from export templates * [#4878](https://github.com/netbox-community/netbox/issues/4878) - Custom field data is now stored directly on each object * [#4941](https://github.com/netbox-community/netbox/issues/4941) - `commit` argument is now required argument in a custom script's `run()` method +* [#5225](https://github.com/netbox-community/netbox/issues/5225) - Circuit termination port speed is now an optional field ### REST API Changes @@ -65,6 +66,7 @@ All end-to-end cable paths are now cached using the new CablePath model. This al * Added the `/trace/` endpoint * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) * Added `cable_peer` and `cable_peer_type` + * `port_speed` may now be null * dcim.Cable: Added `custom_fields` * dcim.ConsolePort: * Replaced `connection_status` with `connected_endpoint_reachable` (boolean) diff --git a/netbox/circuits/migrations/0023_circuittermination_port_speed_optional.py b/netbox/circuits/migrations/0023_circuittermination_port_speed_optional.py new file mode 100644 index 000000000..ea9190623 --- /dev/null +++ b/netbox/circuits/migrations/0023_circuittermination_port_speed_optional.py @@ -0,0 +1,18 @@ +# Generated by Django 3.1 on 2020-10-09 17:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('circuits', '0022_cablepath'), + ] + + operations = [ + migrations.AlterField( + model_name='circuittermination', + name='port_speed', + field=models.PositiveIntegerField(blank=True, null=True), + ), + ] diff --git a/netbox/circuits/models.py b/netbox/circuits/models.py index 725fe4b3f..a4eed83f0 100644 --- a/netbox/circuits/models.py +++ b/netbox/circuits/models.py @@ -248,7 +248,9 @@ class CircuitTermination(PathEndpoint, CableTermination): related_name='circuit_terminations' ) port_speed = models.PositiveIntegerField( - verbose_name='Port speed (Kbps)' + verbose_name='Port speed (Kbps)', + blank=True, + null=True ) upstream_speed = models.PositiveIntegerField( blank=True, diff --git a/netbox/circuits/tests/test_api.py b/netbox/circuits/tests/test_api.py index 48493d5ef..26ec5928b 100644 --- a/netbox/circuits/tests/test_api.py +++ b/netbox/circuits/tests/test_api.py @@ -153,10 +153,10 @@ class CircuitTerminationTest(APIViewTestCases.APIViewTestCase): Circuit.objects.bulk_create(circuits) circuit_terminations = ( - CircuitTermination(circuit=circuits[0], site=sites[0], port_speed=100000, term_side=SIDE_A), - CircuitTermination(circuit=circuits[0], site=sites[1], port_speed=100000, term_side=SIDE_Z), - CircuitTermination(circuit=circuits[1], site=sites[0], port_speed=100000, term_side=SIDE_A), - CircuitTermination(circuit=circuits[1], site=sites[1], port_speed=100000, term_side=SIDE_Z), + CircuitTermination(circuit=circuits[0], site=sites[0], term_side=SIDE_A), + CircuitTermination(circuit=circuits[0], site=sites[1], term_side=SIDE_Z), + CircuitTermination(circuit=circuits[1], site=sites[0], term_side=SIDE_A), + CircuitTermination(circuit=circuits[1], site=sites[1], term_side=SIDE_Z), ) CircuitTermination.objects.bulk_create(circuit_terminations) diff --git a/netbox/circuits/tests/test_filters.py b/netbox/circuits/tests/test_filters.py index 73701be03..9477bfbac 100644 --- a/netbox/circuits/tests/test_filters.py +++ b/netbox/circuits/tests/test_filters.py @@ -50,8 +50,8 @@ class ProviderTestCase(TestCase): Circuit.objects.bulk_create(circuits) CircuitTermination.objects.bulk_create(( - CircuitTermination(circuit=circuits[0], site=sites[0], term_side='A', port_speed=1000), - CircuitTermination(circuit=circuits[1], site=sites[0], term_side='A', port_speed=1000), + CircuitTermination(circuit=circuits[0], site=sites[0], term_side='A'), + CircuitTermination(circuit=circuits[1], site=sites[0], term_side='A'), )) def test_id(self): @@ -176,9 +176,9 @@ class CircuitTestCase(TestCase): Circuit.objects.bulk_create(circuits) circuit_terminations = (( - CircuitTermination(circuit=circuits[0], site=sites[0], term_side='A', port_speed=1000), - CircuitTermination(circuit=circuits[1], site=sites[1], term_side='A', port_speed=1000), - CircuitTermination(circuit=circuits[2], site=sites[2], term_side='A', port_speed=1000), + CircuitTermination(circuit=circuits[0], site=sites[0], term_side='A'), + CircuitTermination(circuit=circuits[1], site=sites[1], term_side='A'), + CircuitTermination(circuit=circuits[2], site=sites[2], term_side='A'), )) CircuitTermination.objects.bulk_create(circuit_terminations) diff --git a/netbox/dcim/tests/test_cablepaths.py b/netbox/dcim/tests/test_cablepaths.py index 5699b3b88..9e0f0e77f 100644 --- a/netbox/dcim/tests/test_cablepaths.py +++ b/netbox/dcim/tests/test_cablepaths.py @@ -234,9 +234,7 @@ class CablePathTestCase(TestCase): [IF1] --C1-- [CT1A] """ interface1 = Interface.objects.create(device=self.device, name='Interface 1') - circuittermination1 = CircuitTermination.objects.create( - circuit=self.circuit, site=self.site, term_side='A', port_speed=1000 - ) + circuittermination1 = CircuitTermination.objects.create(circuit=self.circuit, site=self.site, term_side='A') # Create cable 1 cable1 = Cable(termination_a=interface1, termination_b=circuittermination1) diff --git a/netbox/dcim/tests/test_models.py b/netbox/dcim/tests/test_models.py index 01829d7bc..85fa44be5 100644 --- a/netbox/dcim/tests/test_models.py +++ b/netbox/dcim/tests/test_models.py @@ -390,8 +390,8 @@ class CableTestCase(TestCase): self.provider = Provider.objects.create(name='Provider 1', slug='provider-1') self.circuittype = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1') self.circuit = Circuit.objects.create(provider=self.provider, type=self.circuittype, cid='1') - self.circuittermination1 = CircuitTermination.objects.create(circuit=self.circuit, site=site, term_side='A', port_speed=1000) - self.circuittermination2 = CircuitTermination.objects.create(circuit=self.circuit, site=site, term_side='Z', port_speed=1000) + self.circuittermination1 = CircuitTermination.objects.create(circuit=self.circuit, site=site, term_side='A') + self.circuittermination2 = CircuitTermination.objects.create(circuit=self.circuit, site=site, term_side='Z') def test_cable_creation(self): """ diff --git a/netbox/templates/circuits/circuittermination_edit.html b/netbox/templates/circuits/circuittermination_edit.html index 8a6171e5f..ad41e7d60 100644 --- a/netbox/templates/circuits/circuittermination_edit.html +++ b/netbox/templates/circuits/circuittermination_edit.html @@ -47,7 +47,7 @@