From 3d34f1cdcb55d82bb484c5141df5788f4afa0c6a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 5 Oct 2020 11:13:33 -0400 Subject: [PATCH] Rename CablePath.is_connected to is_active --- netbox/dcim/api/serializers.py | 2 +- netbox/dcim/filters.py | 2 +- netbox/dcim/migrations/0120_cablepath.py | 2 +- netbox/dcim/models/devices.py | 2 +- netbox/dcim/signals.py | 10 +-- netbox/dcim/tables.py | 6 +- netbox/dcim/tests/test_cablepaths.py | 92 ++++++++++++------------ netbox/dcim/utils.py | 8 +-- netbox/dcim/views.py | 6 +- 9 files changed, 65 insertions(+), 65 deletions(-) diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index b591ae36a..144e764dc 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -52,7 +52,7 @@ class ConnectedEndpointSerializer(ValidatedModelSerializer): @swagger_serializer_method(serializer_or_field=serializers.BooleanField) def get_connection_status(self, obj): if obj._path is not None: - return obj._path.is_connected + return obj._path.is_active return None diff --git a/netbox/dcim/filters.py b/netbox/dcim/filters.py index d16f5d1aa..74b5903a6 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filters.py @@ -760,7 +760,7 @@ class PathEndpointFilterSet(django_filters.FilterSet): ) def filter_is_connected(self, queryset, name, value): - return queryset.filter(_path__is_connected=True) + return queryset.filter(_path__is_active=True) class ConsolePortFilterSet(BaseFilterSet, DeviceComponentFilterSet, PathEndpointFilterSet): diff --git a/netbox/dcim/migrations/0120_cablepath.py b/netbox/dcim/migrations/0120_cablepath.py index 0d2199e31..2b58f119a 100644 --- a/netbox/dcim/migrations/0120_cablepath.py +++ b/netbox/dcim/migrations/0120_cablepath.py @@ -20,7 +20,7 @@ class Migration(migrations.Migration): ('origin_id', models.PositiveIntegerField()), ('destination_id', models.PositiveIntegerField(blank=True, null=True)), ('path', dcim.fields.PathField(base_field=models.CharField(max_length=40), size=None)), - ('is_connected', models.BooleanField(default=False)), + ('is_active', models.BooleanField(default=False)), ('destination_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='+', to='contenttypes.contenttype')), ('origin_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='contenttypes.contenttype')), ], diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index ea7332b3d..1f9db0986 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -1191,7 +1191,7 @@ class CablePath(models.Model): fk_field='destination_id' ) path = PathField() - is_connected = models.BooleanField( + is_active = models.BooleanField( default=False ) diff --git a/netbox/dcim/signals.py b/netbox/dcim/signals.py index 13653c7d4..6079417c1 100644 --- a/netbox/dcim/signals.py +++ b/netbox/dcim/signals.py @@ -14,9 +14,9 @@ def create_cablepath(node): """ Create CablePaths for all paths originating from the specified node. """ - path, destination, is_connected = trace_path(node) + path, destination, is_active = trace_path(node) if path: - cp = CablePath(origin=node, path=path, destination=destination, is_connected=is_connected) + cp = CablePath(origin=node, path=path, destination=destination, is_active=is_active) cp.save() @@ -86,7 +86,7 @@ def update_connected_endpoints(instance, created, **kwargs): # may change in the future.) However, we do need to capture status changes and update # any CablePaths accordingly. if instance.status != CableStatusChoices.STATUS_CONNECTED: - CablePath.objects.filter(path__contains=[object_to_path_node(instance)]).update(is_connected=False) + CablePath.objects.filter(path__contains=[object_to_path_node(instance)]).update(is_active=False) else: rebuild_paths(instance) @@ -110,13 +110,13 @@ def nullify_connected_endpoints(instance, **kwargs): # Delete and retrace any dependent cable paths for cablepath in CablePath.objects.filter(path__contains=[object_to_path_node(instance)]): - path, destination, is_connected = trace_path(cablepath.origin) + path, destination, is_active = trace_path(cablepath.origin) if path: CablePath.objects.filter(pk=cablepath.pk).update( path=path, destination_type=ContentType.objects.get_for_model(destination) if destination else None, destination_id=destination.pk if destination else None, - is_connected=is_connected + is_active=is_active ) else: cablepath.delete() diff --git a/netbox/dcim/tables.py b/netbox/dcim/tables.py index 57cd0b6eb..1ae5282f3 100644 --- a/netbox/dcim/tables.py +++ b/netbox/dcim/tables.py @@ -832,7 +832,7 @@ class ConsoleConnectionTable(BaseTable): verbose_name='Console Port' ) path_status = tables.TemplateColumn( - accessor=Accessor('_path__is_connected'), + accessor=Accessor('_path__is_active'), template_code=PATH_STATUS, verbose_name='Path Status' ) @@ -865,7 +865,7 @@ class PowerConnectionTable(BaseTable): verbose_name='Power Port' ) path_status = tables.TemplateColumn( - accessor=Accessor('_path__is_connected'), + accessor=Accessor('_path__is_active'), template_code=PATH_STATUS, verbose_name='Path Status' ) @@ -901,7 +901,7 @@ class InterfaceConnectionTable(BaseTable): verbose_name='Interface B' ) path_status = tables.TemplateColumn( - accessor=Accessor('_path__is_connected'), + accessor=Accessor('_path__is_active'), template_code=PATH_STATUS, verbose_name='Path Status' ) diff --git a/netbox/dcim/tests/test_cablepaths.py b/netbox/dcim/tests/test_cablepaths.py index 52b37e3bd..65de412cf 100644 --- a/netbox/dcim/tests/test_cablepaths.py +++ b/netbox/dcim/tests/test_cablepaths.py @@ -123,14 +123,14 @@ class CablePathTestCase(TestCase): cls.circuittermination2_Z, ]) - def assertPathExists(self, origin, destination, path=None, is_connected=None, msg=None): + def assertPathExists(self, origin, destination, path=None, is_active=None, msg=None): """ Assert that a CablePath from origin to destination with a specific intermediate path exists. :param origin: Originating endpoint :param destination: Terminating endpoint, or None :param path: Sequence of objects comprising the intermediate path (optional) - :param is_connected: Boolean indicating whether the end-to-end path is complete and active (optional) + :param is_active: Boolean indicating whether the end-to-end path is complete and active (optional) :param msg: Custom failure message (optional) :return: The matching CablePath (if any) @@ -147,8 +147,8 @@ class CablePathTestCase(TestCase): kwargs['destination_id__isnull'] = True if path is not None: kwargs['path'] = objects_to_path(*path) - if is_connected is not None: - kwargs['is_connected'] = is_connected + if is_active is not None: + kwargs['is_active'] = is_active if msg is None: if destination is not None: msg = f"Missing path from {origin} to {destination}" @@ -194,13 +194,13 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=self.interface2, path=(cable1,), - is_connected=True + is_active=True ) path2 = self.assertPathExists( origin=self.interface2, destination=self.interface1, path=(cable1,), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) self.interface1.refresh_from_db() @@ -225,13 +225,13 @@ class CablePathTestCase(TestCase): origin=self.consoleport1, destination=self.consoleserverport1, path=(cable1,), - is_connected=True + is_active=True ) path2 = self.assertPathExists( origin=self.consoleserverport1, destination=self.consoleport1, path=(cable1,), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) self.consoleport1.refresh_from_db() @@ -256,13 +256,13 @@ class CablePathTestCase(TestCase): origin=self.powerport1, destination=self.poweroutlet1, path=(cable1,), - is_connected=True + is_active=True ) path2 = self.assertPathExists( origin=self.poweroutlet1, destination=self.powerport1, path=(cable1,), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) self.powerport1.refresh_from_db() @@ -287,13 +287,13 @@ class CablePathTestCase(TestCase): origin=self.powerport1, destination=self.powerfeed1, path=(cable1,), - is_connected=True + is_active=True ) path2 = self.assertPathExists( origin=self.powerfeed1, destination=self.powerport1, path=(cable1,), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) self.powerport1.refresh_from_db() @@ -318,13 +318,13 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=self.circuittermination1_A, path=(cable1,), - is_connected=True + is_active=True ) path2 = self.assertPathExists( origin=self.circuittermination1_A, destination=self.interface1, path=(cable1,), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) self.interface1.refresh_from_db() @@ -352,7 +352,7 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=None, path=(cable1, self.front_port5_1, self.rear_port5), - is_connected=False + is_active=False ) self.assertEqual(CablePath.objects.count(), 1) @@ -363,13 +363,13 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=self.interface2, path=(cable1, self.front_port5_1, self.rear_port5, cable2), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface2, destination=self.interface1, path=(cable2, self.rear_port5, self.front_port5_1, cable1), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) @@ -379,7 +379,7 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=None, path=(cable1, self.front_port5_1, self.rear_port5), - is_connected=False + is_active=False ) self.assertEqual(CablePath.objects.count(), 1) self.interface1.refresh_from_db() @@ -406,13 +406,13 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=None, path=(cable1, self.front_port1_1, self.rear_port1), - is_connected=False + is_active=False ) self.assertPathExists( origin=self.interface2, destination=None, path=(cable2, self.front_port1_2, self.rear_port1), - is_connected=False + is_active=False ) self.assertEqual(CablePath.objects.count(), 2) @@ -423,13 +423,13 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=None, path=(cable1, self.front_port1_1, self.rear_port1, cable3, self.rear_port2, self.front_port2_1), - is_connected=False + is_active=False ) self.assertPathExists( origin=self.interface2, destination=None, path=(cable2, self.front_port1_2, self.rear_port1, cable3, self.rear_port2, self.front_port2_2), - is_connected=False + is_active=False ) self.assertEqual(CablePath.objects.count(), 2) @@ -445,7 +445,7 @@ class CablePathTestCase(TestCase): cable1, self.front_port1_1, self.rear_port1, cable3, self.rear_port2, self.front_port2_1, cable4, ), - is_connected=True + is_active=True ) path2 = self.assertPathExists( origin=self.interface2, @@ -454,7 +454,7 @@ class CablePathTestCase(TestCase): cable2, self.front_port1_2, self.rear_port1, cable3, self.rear_port2, self.front_port2_2, cable5, ), - is_connected=True + is_active=True ) path3 = self.assertPathExists( origin=self.interface3, @@ -463,7 +463,7 @@ class CablePathTestCase(TestCase): cable4, self.front_port2_1, self.rear_port2, cable3, self.rear_port1, self.front_port1_1, cable1 ), - is_connected=True + is_active=True ) path4 = self.assertPathExists( origin=self.interface4, @@ -472,7 +472,7 @@ class CablePathTestCase(TestCase): cable5, self.front_port2_2, self.rear_port2, cable3, self.rear_port1, self.front_port1_2, cable2 ), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 4) @@ -530,7 +530,7 @@ class CablePathTestCase(TestCase): cable4, self.rear_port3, self.front_port3_1, cable5, self.rear_port4, self.front_port4_1, cable6 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface2, @@ -540,7 +540,7 @@ class CablePathTestCase(TestCase): cable4, self.rear_port3, self.front_port3_1, cable5, self.rear_port4, self.front_port4_2, cable7 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface3, @@ -550,7 +550,7 @@ class CablePathTestCase(TestCase): cable4, self.rear_port2, self.front_port2_1, cable3, self.rear_port1, self.front_port1_1, cable1 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface4, @@ -560,7 +560,7 @@ class CablePathTestCase(TestCase): cable4, self.rear_port2, self.front_port2_1, cable3, self.rear_port1, self.front_port1_2, cable2 ), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 4) @@ -609,7 +609,7 @@ class CablePathTestCase(TestCase): cable4, self.front_port3_1, self.rear_port3, cable6, self.rear_port4, self.front_port4_1, cable7 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface2, @@ -619,7 +619,7 @@ class CablePathTestCase(TestCase): cable5, self.front_port3_2, self.rear_port3, cable6, self.rear_port4, self.front_port4_2, cable8 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface3, @@ -629,7 +629,7 @@ class CablePathTestCase(TestCase): cable4, self.front_port2_1, self.rear_port2, cable3, self.rear_port1, self.front_port1_1, cable1 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface4, @@ -639,7 +639,7 @@ class CablePathTestCase(TestCase): cable5, self.front_port2_2, self.rear_port2, cable3, self.rear_port1, self.front_port1_2, cable2 ), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 4) @@ -683,7 +683,7 @@ class CablePathTestCase(TestCase): cable1, self.front_port1_1, self.rear_port1, cable3, self.front_port5_1, self.rear_port5, cable4, self.rear_port2, self.front_port2_1, cable5 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface2, @@ -692,7 +692,7 @@ class CablePathTestCase(TestCase): cable2, self.front_port1_2, self.rear_port1, cable3, self.front_port5_1, self.rear_port5, cable4, self.rear_port2, self.front_port2_2, cable6 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface3, @@ -701,7 +701,7 @@ class CablePathTestCase(TestCase): cable5, self.front_port2_1, self.rear_port2, cable4, self.rear_port5, self.front_port5_1, cable3, self.rear_port1, self.front_port1_1, cable1 ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface4, @@ -710,7 +710,7 @@ class CablePathTestCase(TestCase): cable6, self.front_port2_2, self.rear_port2, cable4, self.rear_port5, self.front_port5_1, cable3, self.rear_port1, self.front_port1_2, cable2 ), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 4) @@ -740,7 +740,7 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=None, path=(cable1, self.front_port5_1, self.rear_port5, cable2, self.rear_port6, self.front_port6_1), - is_connected=False + is_active=False ) self.assertEqual(CablePath.objects.count(), 1) @@ -754,7 +754,7 @@ class CablePathTestCase(TestCase): cable1, self.front_port5_1, self.rear_port5, cable2, self.rear_port6, self.front_port6_1, cable3, ), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface2, @@ -763,7 +763,7 @@ class CablePathTestCase(TestCase): cable3, self.front_port6_1, self.rear_port6, cable2, self.rear_port5, self.front_port5_1, cable1, ), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) @@ -779,7 +779,7 @@ class CablePathTestCase(TestCase): cable1.save() cable2 = Cable(termination_a=self.rear_port5, termination_b=self.interface2) cable2.save() - self.assertEqual(CablePath.objects.filter(is_connected=True).count(), 2) + self.assertEqual(CablePath.objects.filter(is_active=True).count(), 2) self.assertEqual(CablePath.objects.count(), 2) # Change cable 2's status to "planned" @@ -789,13 +789,13 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=self.interface2, path=(cable1, self.front_port5_1, self.rear_port5, cable2), - is_connected=False + is_active=False ) self.assertPathExists( origin=self.interface2, destination=self.interface1, path=(cable2, self.rear_port5, self.front_port5_1, cable1), - is_connected=False + is_active=False ) self.assertEqual(CablePath.objects.count(), 2) @@ -807,12 +807,12 @@ class CablePathTestCase(TestCase): origin=self.interface1, destination=self.interface2, path=(cable1, self.front_port5_1, self.rear_port5, cable2), - is_connected=True + is_active=True ) self.assertPathExists( origin=self.interface2, destination=self.interface1, path=(cable2, self.rear_port5, self.front_port5_1, cable1), - is_connected=True + is_active=True ) self.assertEqual(CablePath.objects.count(), 2) diff --git a/netbox/dcim/utils.py b/netbox/dcim/utils.py index 40896f97b..186ea72e5 100644 --- a/netbox/dcim/utils.py +++ b/netbox/dcim/utils.py @@ -24,14 +24,14 @@ def trace_path(node): destination = None path = [] position_stack = [] - is_connected = True + is_active = True if node is None or node.cable is None: return [], None, False while node.cable is not None: if node.cable.status != CableStatusChoices.STATUS_CONNECTED: - is_connected = False + is_active = False # Follow the cable to its far-end termination path.append(object_to_path_node(node.cable)) @@ -65,6 +65,6 @@ def trace_path(node): break if destination is None: - is_connected = False + is_active = False - return path, destination, is_connected + return path, destination, is_active diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 9290a2b4a..a2850fc46 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -2088,7 +2088,7 @@ class ConsoleConnectionsListView(ObjectListView): obj._path.destination.name if obj._path.destination else None, obj.device.identifier, obj.name, - 'Connected' if obj._path.is_connected else 'Not Connected', + 'Connected' if obj._path.is_active else 'Not Connected', ]) csv_data.append(csv) @@ -2115,7 +2115,7 @@ class PowerConnectionsListView(ObjectListView): obj._path.destination.name if obj._path.destination else None, obj.device.identifier, obj.name, - 'Connected' if obj._path.is_connected else 'Not Connected', + 'Connected' if obj._path.is_active else 'Not Connected', ]) csv_data.append(csv) @@ -2148,7 +2148,7 @@ class InterfaceConnectionsListView(ObjectListView): obj._path.destination.name if obj._path.destination else None, obj.device.identifier, obj.name, - 'Connected' if obj._path.is_connected else 'Not Connected', + 'Connected' if obj._path.is_active else 'Not Connected', ]) csv_data.append(csv)