diff --git a/netbox/dcim/signals.py b/netbox/dcim/signals.py index 94518ed42..36134e992 100644 --- a/netbox/dcim/signals.py +++ b/netbox/dcim/signals.py @@ -85,7 +85,7 @@ def create_or_rebuild_paths(nodes, in_path): if isinstance(nodes[0], PathEndpoint): if in_path: print(f"rebuild_paths1 for: {nodes}") - rebuild_paths(nodes) + rebuild_paths(nodes, True) else: print(f"create_cablepath for: {nodes}") create_cablepath(nodes) @@ -151,6 +151,9 @@ def nullify_connected_endpoints(instance, **kwargs): model.objects.filter(pk=instance.termination_id).update(cable=None, cable_end='') # for cablepath in CablePath.objects.filter(_nodes__contains=instance.cable): + # print(f"_nodes before: {cablepath._nodes}") + # cablepath._nodes.remove(instance) + # print(f"_nodes after: {cablepath._nodes}") # cablepath.retrace() diff --git a/netbox/dcim/utils.py b/netbox/dcim/utils.py index 92ed0d2fa..d3389ef64 100644 --- a/netbox/dcim/utils.py +++ b/netbox/dcim/utils.py @@ -45,7 +45,7 @@ def create_cablepath(terminations): cp.save() -def rebuild_paths(terminations): +def rebuild_paths(terminations, endpoint=False): """ Rebuild all CablePaths which traverse the specified nodes. """ @@ -58,4 +58,4 @@ def rebuild_paths(terminations): for cp in cable_paths: cp.dump() cp.delete() - create_cablepath(cp.origins) + create_cablepath(terminations if endpoint else cp.origins)