Harden topology canvas edge delete, discover cancel, and map UX.

Persist Fabric edge deletes, stop LLDP jobs from the canvas, surface truncation/placeholders/stale edges, and fix LLDP job deep-links.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-05 21:23:00 +08:00
parent 5e567408e7
commit 617d4245b0
14 changed files with 468 additions and 238 deletions

View file

@ -99,6 +99,14 @@ def _connect_status_for_node(db: Session, n: TopoFabricNode) -> str:
return ""
def _managed_source_for_node(db: Session, n: TopoFabricNode) -> str:
if n.managed_ne_id:
ne = db.get(ManagedNE, n.managed_ne_id)
if ne is not None:
return str(ne.source or "").strip()
return ""
def get_view_graph(db: Session, view_id: str) -> TopologyViewGraphOut:
view = _get_view_or_404(db, view_id)
vnodes = db.query(TopoViewNode).filter(TopoViewNode.view_id == view.id).all()
@ -135,6 +143,7 @@ def get_view_graph(db: Session, view_id: str) -> TopologyViewGraphOut:
vendor=(fn.vendor if fn else "") or "",
device_type=(fn.device_type if fn else "") or "",
connect_status=_connect_status_for_node(db, fn) if fn else "",
managed_source=_managed_source_for_node(db, fn) if fn else "",
)
)
edges_out: list[ViewEdgeOut] = []