mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
Rename CablePath.is_connected to is_active
This commit is contained in:
parent
13db22d392
commit
3d34f1cdcb
@ -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
|
||||
|
||||
|
||||
|
@ -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):
|
||||
|
@ -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')),
|
||||
],
|
||||
|
@ -1191,7 +1191,7 @@ class CablePath(models.Model):
|
||||
fk_field='destination_id'
|
||||
)
|
||||
path = PathField()
|
||||
is_connected = models.BooleanField(
|
||||
is_active = models.BooleanField(
|
||||
default=False
|
||||
)
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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'
|
||||
)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user