mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-19 09:53:34 -06:00
Fix circuit termination tracing & update tests
This commit is contained in:
parent
8bc6d8cb23
commit
c88f7b8408
@ -435,20 +435,22 @@ class CablePath(models.Model):
|
|||||||
assert all(ct.term_side == term_side for ct in remote_terminations[1:])
|
assert all(ct.term_side == term_side for ct in remote_terminations[1:])
|
||||||
circuit_termination = CircuitTermination.objects.filter(
|
circuit_termination = CircuitTermination.objects.filter(
|
||||||
circuit=remote_terminations[0].circuit,
|
circuit=remote_terminations[0].circuit,
|
||||||
term_side='Z' if term_side == 'A' else 'Z'
|
term_side='Z' if term_side == 'A' else 'A'
|
||||||
).first()
|
).first()
|
||||||
if circuit_termination is None:
|
if circuit_termination is None:
|
||||||
break
|
break
|
||||||
elif circuit_termination.provider_network:
|
elif circuit_termination.provider_network:
|
||||||
# Circuit terminates to a ProviderNetwork
|
# Circuit terminates to a ProviderNetwork
|
||||||
path.append([
|
path.extend([
|
||||||
object_to_path_node(circuit_termination.provider_network)
|
[object_to_path_node(circuit_termination)],
|
||||||
|
[object_to_path_node(circuit_termination.provider_network)],
|
||||||
])
|
])
|
||||||
break
|
break
|
||||||
elif circuit_termination.site and not circuit_termination.cable:
|
elif circuit_termination.site and not circuit_termination.cable:
|
||||||
# Circuit terminates to a Site
|
# Circuit terminates to a Site
|
||||||
path.append([
|
path.extend([
|
||||||
object_to_path_node(circuit_termination.site)
|
[object_to_path_node(circuit_termination)],
|
||||||
|
[object_to_path_node(circuit_termination.site)],
|
||||||
])
|
])
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -102,14 +102,14 @@ def update_connected_endpoints(instance, created, raw=False, **kwargs):
|
|||||||
create_cablepath(terms)
|
create_cablepath(terms)
|
||||||
else:
|
else:
|
||||||
rebuild_paths(terms)
|
rebuild_paths(terms)
|
||||||
# elif instance.status != instance._orig_status:
|
elif instance.status != instance._orig_status:
|
||||||
# # We currently don't support modifying either termination of an existing Cable. (This
|
# We currently don't support modifying either termination of an existing Cable. (This
|
||||||
# # 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 != LinkStatusChoices.STATUS_CONNECTED:
|
if instance.status != LinkStatusChoices.STATUS_CONNECTED:
|
||||||
# CablePath.objects.filter(path__contains=instance).update(is_active=False)
|
CablePath.objects.filter(_nodes__contains=instance).update(is_active=False)
|
||||||
# else:
|
else:
|
||||||
# rebuild_paths(instance)
|
rebuild_paths([instance])
|
||||||
|
|
||||||
|
|
||||||
# @receiver(post_save, sender=CableTermination)
|
# @receiver(post_save, sender=CableTermination)
|
||||||
|
@ -385,7 +385,6 @@ class CablePathTestCase(TestCase):
|
|||||||
)
|
)
|
||||||
self.assertPathExists(
|
self.assertPathExists(
|
||||||
(interface2, cable2, frontport1_2, rearport1, cable3, rearport2, frontport2_2),
|
(interface2, cable2, frontport1_2, rearport1, cable3, rearport2, frontport2_2),
|
||||||
is_active=False,
|
|
||||||
is_complete=False
|
is_complete=False
|
||||||
)
|
)
|
||||||
self.assertEqual(CablePath.objects.count(), 2)
|
self.assertEqual(CablePath.objects.count(), 2)
|
||||||
@ -427,8 +426,8 @@ class CablePathTestCase(TestCase):
|
|||||||
cable3.delete()
|
cable3.delete()
|
||||||
|
|
||||||
# Check for four partial paths; one from each interface
|
# Check for four partial paths; one from each interface
|
||||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=True).count(), 4)
|
self.assertEqual(CablePath.objects.filter(is_complete=False).count(), 4)
|
||||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=False).count(), 0)
|
self.assertEqual(CablePath.objects.filter(is_complete=True).count(), 0)
|
||||||
interface1.refresh_from_db()
|
interface1.refresh_from_db()
|
||||||
interface2.refresh_from_db()
|
interface2.refresh_from_db()
|
||||||
interface3.refresh_from_db()
|
interface3.refresh_from_db()
|
||||||
@ -1116,8 +1115,8 @@ class CablePathTestCase(TestCase):
|
|||||||
cable4.delete()
|
cable4.delete()
|
||||||
|
|
||||||
# Check for four partial paths; one from each interface
|
# Check for four partial paths; one from each interface
|
||||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=True).count(), 4)
|
self.assertEqual(CablePath.objects.filter(is_complete=False).count(), 4)
|
||||||
self.assertEqual(CablePath.objects.filter(destination_id__isnull=False).count(), 0)
|
self.assertEqual(CablePath.objects.filter(is_complete=True).count(), 0)
|
||||||
|
|
||||||
def test_213_multiple_circuits_to_interface(self):
|
def test_213_multiple_circuits_to_interface(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user