mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-03 09:10:11 +03:00
marker: make per-filter toggle fall back to NIO rebuild when the marker isn't installed
Toggle routes silently no-opped when _marker_filter_bridges lacked the filter name, so update_marker's enabled-only short-circuit succeeded without toggling uBridge — the controller-layer enabled was set but the uBridge filter stayed on and kept emitting signals. Now the toggle routes raise HTTPException 404 (FastAPI handles it directly, no ERROR log); the controller's except catches it and falls back to self.update() (NIO rebuild, which applies the marker + off).
This commit is contained in:
parent
0afbb897a5
commit
34b644a548
@ -269,6 +269,11 @@ async def toggle_cloud_marker(
|
|||||||
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if marker_name not in node._marker_filter_bridges:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Marker '{marker_name}' is not installed on this node",
|
||||||
|
)
|
||||||
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
||||||
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
||||||
|
|
||||||
|
|||||||
@ -423,6 +423,11 @@ async def toggle_docker_marker(
|
|||||||
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if marker_name not in node._marker_filter_bridges:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Marker '{marker_name}' is not installed on this node",
|
||||||
|
)
|
||||||
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
||||||
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
||||||
|
|
||||||
|
|||||||
@ -382,6 +382,11 @@ async def toggle_dynamips_marker(
|
|||||||
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if marker_name not in node._marker_filter_bridges:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Marker '{marker_name}' is not installed on this node",
|
||||||
|
)
|
||||||
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
||||||
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
||||||
|
|
||||||
|
|||||||
@ -361,6 +361,11 @@ async def toggle_iou_marker(
|
|||||||
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if marker_name not in node._marker_filter_bridges:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Marker '{marker_name}' is not installed on this node",
|
||||||
|
)
|
||||||
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
||||||
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
||||||
|
|
||||||
|
|||||||
@ -453,6 +453,11 @@ async def toggle_qemu_marker(
|
|||||||
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if marker_name not in node._marker_filter_bridges:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Marker '{marker_name}' is not installed on this node",
|
||||||
|
)
|
||||||
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
||||||
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
||||||
|
|
||||||
|
|||||||
@ -360,6 +360,11 @@ async def toggle_vpcs_marker(
|
|||||||
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
Toggle a marker filter on/off without an NIO rebuild (ubridge contract §3.2).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if marker_name not in node._marker_filter_bridges:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Marker '{marker_name}' is not installed on this node",
|
||||||
|
)
|
||||||
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
await node._ubridge_set_marker_filter_state(marker_name, toggle_data.enabled)
|
||||||
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
return {"marker_name": marker_name, "enabled": toggle_data.enabled}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user