mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-25 01:48:38 -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)
|
@swagger_serializer_method(serializer_or_field=serializers.BooleanField)
|
||||||
def get_connection_status(self, obj):
|
def get_connection_status(self, obj):
|
||||||
if obj._path is not None:
|
if obj._path is not None:
|
||||||
return obj._path.is_connected
|
return obj._path.is_active
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
@ -760,7 +760,7 @@ class PathEndpointFilterSet(django_filters.FilterSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def filter_is_connected(self, queryset, name, value):
|
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):
|
class ConsolePortFilterSet(BaseFilterSet, DeviceComponentFilterSet, PathEndpointFilterSet):
|
||||||
|
@ -20,7 +20,7 @@ class Migration(migrations.Migration):
|
|||||||
('origin_id', models.PositiveIntegerField()),
|
('origin_id', models.PositiveIntegerField()),
|
||||||
('destination_id', models.PositiveIntegerField(blank=True, null=True)),
|
('destination_id', models.PositiveIntegerField(blank=True, null=True)),
|
||||||
('path', dcim.fields.PathField(base_field=models.CharField(max_length=40), size=None)),
|
('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')),
|
('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')),
|
('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'
|
fk_field='destination_id'
|
||||||
)
|
)
|
||||||
path = PathField()
|
path = PathField()
|
||||||
is_connected = models.BooleanField(
|
is_active = models.BooleanField(
|
||||||
default=False
|
default=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,9 +14,9 @@ def create_cablepath(node):
|
|||||||
"""
|
"""
|
||||||
Create CablePaths for all paths originating from the specified 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:
|
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()
|
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
|
# may change in the future.) However, we do need to capture status changes and update
|
||||||
# any CablePaths accordingly.
|
# any CablePaths accordingly.
|
||||||
if instance.status != CableStatusChoices.STATUS_CONNECTED:
|
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:
|
else:
|
||||||
rebuild_paths(instance)
|
rebuild_paths(instance)
|
||||||
|
|
||||||
@ -110,13 +110,13 @@ def nullify_connected_endpoints(instance, **kwargs):
|
|||||||
|
|
||||||
# Delete and retrace any dependent cable paths
|
# Delete and retrace any dependent cable paths
|
||||||
for cablepath in CablePath.objects.filter(path__contains=[object_to_path_node(instance)]):
|
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:
|
if path:
|
||||||
CablePath.objects.filter(pk=cablepath.pk).update(
|
CablePath.objects.filter(pk=cablepath.pk).update(
|
||||||
path=path,
|
path=path,
|
||||||
destination_type=ContentType.objects.get_for_model(destination) if destination else None,
|
destination_type=ContentType.objects.get_for_model(destination) if destination else None,
|
||||||
destination_id=destination.pk if destination else None,
|
destination_id=destination.pk if destination else None,
|
||||||
is_connected=is_connected
|
is_active=is_active
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
cablepath.delete()
|
cablepath.delete()
|
||||||
|
@ -832,7 +832,7 @@ class ConsoleConnectionTable(BaseTable):
|
|||||||
verbose_name='Console Port'
|
verbose_name='Console Port'
|
||||||
)
|
)
|
||||||
path_status = tables.TemplateColumn(
|
path_status = tables.TemplateColumn(
|
||||||
accessor=Accessor('_path__is_connected'),
|
accessor=Accessor('_path__is_active'),
|
||||||
template_code=PATH_STATUS,
|
template_code=PATH_STATUS,
|
||||||
verbose_name='Path Status'
|
verbose_name='Path Status'
|
||||||
)
|
)
|
||||||
@ -865,7 +865,7 @@ class PowerConnectionTable(BaseTable):
|
|||||||
verbose_name='Power Port'
|
verbose_name='Power Port'
|
||||||
)
|
)
|
||||||
path_status = tables.TemplateColumn(
|
path_status = tables.TemplateColumn(
|
||||||
accessor=Accessor('_path__is_connected'),
|
accessor=Accessor('_path__is_active'),
|
||||||
template_code=PATH_STATUS,
|
template_code=PATH_STATUS,
|
||||||
verbose_name='Path Status'
|
verbose_name='Path Status'
|
||||||
)
|
)
|
||||||
@ -901,7 +901,7 @@ class InterfaceConnectionTable(BaseTable):
|
|||||||
verbose_name='Interface B'
|
verbose_name='Interface B'
|
||||||
)
|
)
|
||||||
path_status = tables.TemplateColumn(
|
path_status = tables.TemplateColumn(
|
||||||
accessor=Accessor('_path__is_connected'),
|
accessor=Accessor('_path__is_active'),
|
||||||
template_code=PATH_STATUS,
|
template_code=PATH_STATUS,
|
||||||
verbose_name='Path Status'
|
verbose_name='Path Status'
|
||||||
)
|
)
|
||||||
|
@ -123,14 +123,14 @@ class CablePathTestCase(TestCase):
|
|||||||
cls.circuittermination2_Z,
|
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.
|
Assert that a CablePath from origin to destination with a specific intermediate path exists.
|
||||||
|
|
||||||
:param origin: Originating endpoint
|
:param origin: Originating endpoint
|
||||||
:param destination: Terminating endpoint, or None
|
:param destination: Terminating endpoint, or None
|
||||||
:param path: Sequence of objects comprising the intermediate path (optional)
|
: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)
|
:param msg: Custom failure message (optional)
|
||||||
|
|
||||||
:return: The matching CablePath (if any)
|
:return: The matching CablePath (if any)
|
||||||
@ -147,8 +147,8 @@ class CablePathTestCase(TestCase):
|
|||||||
kwargs['destination_id__isnull'] = True
|
kwargs['destination_id__isnull'] = True
|
||||||
if path is not None:
|
if path is not None:
|
||||||
kwargs['path'] = objects_to_path(*path)
|
kwargs['path'] = objects_to_path(*path)
|
||||||
if is_connected is not None:
|
if is_active is not None:
|
||||||
kwargs['is_connected'] = is_connected
|
kwargs['is_active'] = is_active
|
||||||
if msg is None:
|
if msg is None:
|
||||||
if destination is not None:
|
if destination is not None:
|
||||||
msg = f"Missing path from {origin} to {destination}"
|
msg = f"Missing path from {origin} to {destination}"
|
||||||
@ -194,13 +194,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=self.interface2,
|
destination=self.interface2,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path2 = self.assertPathExists(
|
path2 = self.assertPathExists(
|
||||||
origin=self.interface2,
|
origin=self.interface2,
|
||||||
destination=self.interface1,
|
destination=self.interface1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
self.interface1.refresh_from_db()
|
self.interface1.refresh_from_db()
|
||||||
@ -225,13 +225,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.consoleport1,
|
origin=self.consoleport1,
|
||||||
destination=self.consoleserverport1,
|
destination=self.consoleserverport1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path2 = self.assertPathExists(
|
path2 = self.assertPathExists(
|
||||||
origin=self.consoleserverport1,
|
origin=self.consoleserverport1,
|
||||||
destination=self.consoleport1,
|
destination=self.consoleport1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
self.consoleport1.refresh_from_db()
|
self.consoleport1.refresh_from_db()
|
||||||
@ -256,13 +256,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.powerport1,
|
origin=self.powerport1,
|
||||||
destination=self.poweroutlet1,
|
destination=self.poweroutlet1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path2 = self.assertPathExists(
|
path2 = self.assertPathExists(
|
||||||
origin=self.poweroutlet1,
|
origin=self.poweroutlet1,
|
||||||
destination=self.powerport1,
|
destination=self.powerport1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
self.powerport1.refresh_from_db()
|
self.powerport1.refresh_from_db()
|
||||||
@ -287,13 +287,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.powerport1,
|
origin=self.powerport1,
|
||||||
destination=self.powerfeed1,
|
destination=self.powerfeed1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path2 = self.assertPathExists(
|
path2 = self.assertPathExists(
|
||||||
origin=self.powerfeed1,
|
origin=self.powerfeed1,
|
||||||
destination=self.powerport1,
|
destination=self.powerport1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
self.powerport1.refresh_from_db()
|
self.powerport1.refresh_from_db()
|
||||||
@ -318,13 +318,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=self.circuittermination1_A,
|
destination=self.circuittermination1_A,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path2 = self.assertPathExists(
|
path2 = self.assertPathExists(
|
||||||
origin=self.circuittermination1_A,
|
origin=self.circuittermination1_A,
|
||||||
destination=self.interface1,
|
destination=self.interface1,
|
||||||
path=(cable1,),
|
path=(cable1,),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
self.interface1.refresh_from_db()
|
self.interface1.refresh_from_db()
|
||||||
@ -352,7 +352,7 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable1, self.front_port5_1, self.rear_port5),
|
path=(cable1, self.front_port5_1, self.rear_port5),
|
||||||
is_connected=False
|
is_active=False
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 1)
|
self.assertEqual(CablePath.objects.count(), 1)
|
||||||
|
|
||||||
@ -363,13 +363,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=self.interface2,
|
destination=self.interface2,
|
||||||
path=(cable1, self.front_port5_1, self.rear_port5, cable2),
|
path=(cable1, self.front_port5_1, self.rear_port5, cable2),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
origin=self.interface2,
|
||||||
destination=self.interface1,
|
destination=self.interface1,
|
||||||
path=(cable2, self.rear_port5, self.front_port5_1, cable1),
|
path=(cable2, self.rear_port5, self.front_port5_1, cable1),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
|
|
||||||
@ -379,7 +379,7 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable1, self.front_port5_1, self.rear_port5),
|
path=(cable1, self.front_port5_1, self.rear_port5),
|
||||||
is_connected=False
|
is_active=False
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 1)
|
self.assertEqual(CablePath.objects.count(), 1)
|
||||||
self.interface1.refresh_from_db()
|
self.interface1.refresh_from_db()
|
||||||
@ -406,13 +406,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable1, self.front_port1_1, self.rear_port1),
|
path=(cable1, self.front_port1_1, self.rear_port1),
|
||||||
is_connected=False
|
is_active=False
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
origin=self.interface2,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable2, self.front_port1_2, self.rear_port1),
|
path=(cable2, self.front_port1_2, self.rear_port1),
|
||||||
is_connected=False
|
is_active=False
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
|
|
||||||
@ -423,13 +423,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable1, self.front_port1_1, self.rear_port1, cable3, self.rear_port2, self.front_port2_1),
|
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(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
origin=self.interface2,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable2, self.front_port1_2, self.rear_port1, cable3, self.rear_port2, self.front_port2_2),
|
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)
|
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,
|
cable1, self.front_port1_1, self.rear_port1, cable3, self.rear_port2, self.front_port2_1,
|
||||||
cable4,
|
cable4,
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path2 = self.assertPathExists(
|
path2 = self.assertPathExists(
|
||||||
origin=self.interface2,
|
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,
|
cable2, self.front_port1_2, self.rear_port1, cable3, self.rear_port2, self.front_port2_2,
|
||||||
cable5,
|
cable5,
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path3 = self.assertPathExists(
|
path3 = self.assertPathExists(
|
||||||
origin=self.interface3,
|
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,
|
cable4, self.front_port2_1, self.rear_port2, cable3, self.rear_port1, self.front_port1_1,
|
||||||
cable1
|
cable1
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
path4 = self.assertPathExists(
|
path4 = self.assertPathExists(
|
||||||
origin=self.interface4,
|
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,
|
cable5, self.front_port2_2, self.rear_port2, cable3, self.rear_port1, self.front_port1_2,
|
||||||
cable2
|
cable2
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 4)
|
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,
|
cable4, self.rear_port3, self.front_port3_1, cable5, self.rear_port4, self.front_port4_1,
|
||||||
cable6
|
cable6
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
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,
|
cable4, self.rear_port3, self.front_port3_1, cable5, self.rear_port4, self.front_port4_2,
|
||||||
cable7
|
cable7
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface3,
|
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,
|
cable4, self.rear_port2, self.front_port2_1, cable3, self.rear_port1, self.front_port1_1,
|
||||||
cable1
|
cable1
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface4,
|
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,
|
cable4, self.rear_port2, self.front_port2_1, cable3, self.rear_port1, self.front_port1_2,
|
||||||
cable2
|
cable2
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 4)
|
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,
|
cable4, self.front_port3_1, self.rear_port3, cable6, self.rear_port4, self.front_port4_1,
|
||||||
cable7
|
cable7
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
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,
|
cable5, self.front_port3_2, self.rear_port3, cable6, self.rear_port4, self.front_port4_2,
|
||||||
cable8
|
cable8
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface3,
|
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,
|
cable4, self.front_port2_1, self.rear_port2, cable3, self.rear_port1, self.front_port1_1,
|
||||||
cable1
|
cable1
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface4,
|
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,
|
cable5, self.front_port2_2, self.rear_port2, cable3, self.rear_port1, self.front_port1_2,
|
||||||
cable2
|
cable2
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 4)
|
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,
|
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
|
cable4, self.rear_port2, self.front_port2_1, cable5
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
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,
|
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
|
cable4, self.rear_port2, self.front_port2_2, cable6
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface3,
|
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,
|
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
|
cable3, self.rear_port1, self.front_port1_1, cable1
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface4,
|
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,
|
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
|
cable3, self.rear_port1, self.front_port1_2, cable2
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 4)
|
self.assertEqual(CablePath.objects.count(), 4)
|
||||||
|
|
||||||
@ -740,7 +740,7 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=None,
|
destination=None,
|
||||||
path=(cable1, self.front_port5_1, self.rear_port5, cable2, self.rear_port6, self.front_port6_1),
|
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)
|
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,
|
cable1, self.front_port5_1, self.rear_port5, cable2, self.rear_port6, self.front_port6_1,
|
||||||
cable3,
|
cable3,
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
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,
|
cable3, self.front_port6_1, self.rear_port6, cable2, self.rear_port5, self.front_port5_1,
|
||||||
cable1,
|
cable1,
|
||||||
),
|
),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
|
|
||||||
@ -779,7 +779,7 @@ class CablePathTestCase(TestCase):
|
|||||||
cable1.save()
|
cable1.save()
|
||||||
cable2 = Cable(termination_a=self.rear_port5, termination_b=self.interface2)
|
cable2 = Cable(termination_a=self.rear_port5, termination_b=self.interface2)
|
||||||
cable2.save()
|
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)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
|
|
||||||
# Change cable 2's status to "planned"
|
# Change cable 2's status to "planned"
|
||||||
@ -789,13 +789,13 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=self.interface2,
|
destination=self.interface2,
|
||||||
path=(cable1, self.front_port5_1, self.rear_port5, cable2),
|
path=(cable1, self.front_port5_1, self.rear_port5, cable2),
|
||||||
is_connected=False
|
is_active=False
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
origin=self.interface2,
|
||||||
destination=self.interface1,
|
destination=self.interface1,
|
||||||
path=(cable2, self.rear_port5, self.front_port5_1, cable1),
|
path=(cable2, self.rear_port5, self.front_port5_1, cable1),
|
||||||
is_connected=False
|
is_active=False
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
|
|
||||||
@ -807,12 +807,12 @@ class CablePathTestCase(TestCase):
|
|||||||
origin=self.interface1,
|
origin=self.interface1,
|
||||||
destination=self.interface2,
|
destination=self.interface2,
|
||||||
path=(cable1, self.front_port5_1, self.rear_port5, cable2),
|
path=(cable1, self.front_port5_1, self.rear_port5, cable2),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
origin=self.interface2,
|
origin=self.interface2,
|
||||||
destination=self.interface1,
|
destination=self.interface1,
|
||||||
path=(cable2, self.rear_port5, self.front_port5_1, cable1),
|
path=(cable2, self.rear_port5, self.front_port5_1, cable1),
|
||||||
is_connected=True
|
is_active=True
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
|
@ -24,14 +24,14 @@ def trace_path(node):
|
|||||||
destination = None
|
destination = None
|
||||||
path = []
|
path = []
|
||||||
position_stack = []
|
position_stack = []
|
||||||
is_connected = True
|
is_active = True
|
||||||
|
|
||||||
if node is None or node.cable is None:
|
if node is None or node.cable is None:
|
||||||
return [], None, False
|
return [], None, False
|
||||||
|
|
||||||
while node.cable is not None:
|
while node.cable is not None:
|
||||||
if node.cable.status != CableStatusChoices.STATUS_CONNECTED:
|
if node.cable.status != CableStatusChoices.STATUS_CONNECTED:
|
||||||
is_connected = False
|
is_active = False
|
||||||
|
|
||||||
# Follow the cable to its far-end termination
|
# Follow the cable to its far-end termination
|
||||||
path.append(object_to_path_node(node.cable))
|
path.append(object_to_path_node(node.cable))
|
||||||
@ -65,6 +65,6 @@ def trace_path(node):
|
|||||||
break
|
break
|
||||||
|
|
||||||
if destination is None:
|
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._path.destination.name if obj._path.destination else None,
|
||||||
obj.device.identifier,
|
obj.device.identifier,
|
||||||
obj.name,
|
obj.name,
|
||||||
'Connected' if obj._path.is_connected else 'Not Connected',
|
'Connected' if obj._path.is_active else 'Not Connected',
|
||||||
])
|
])
|
||||||
csv_data.append(csv)
|
csv_data.append(csv)
|
||||||
|
|
||||||
@ -2115,7 +2115,7 @@ class PowerConnectionsListView(ObjectListView):
|
|||||||
obj._path.destination.name if obj._path.destination else None,
|
obj._path.destination.name if obj._path.destination else None,
|
||||||
obj.device.identifier,
|
obj.device.identifier,
|
||||||
obj.name,
|
obj.name,
|
||||||
'Connected' if obj._path.is_connected else 'Not Connected',
|
'Connected' if obj._path.is_active else 'Not Connected',
|
||||||
])
|
])
|
||||||
csv_data.append(csv)
|
csv_data.append(csv)
|
||||||
|
|
||||||
@ -2148,7 +2148,7 @@ class InterfaceConnectionsListView(ObjectListView):
|
|||||||
obj._path.destination.name if obj._path.destination else None,
|
obj._path.destination.name if obj._path.destination else None,
|
||||||
obj.device.identifier,
|
obj.device.identifier,
|
||||||
obj.name,
|
obj.name,
|
||||||
'Connected' if obj._path.is_connected else 'Not Connected',
|
'Connected' if obj._path.is_active else 'Not Connected',
|
||||||
])
|
])
|
||||||
csv_data.append(csv)
|
csv_data.append(csv)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user