mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-03 14:01:15 +02:00
fix(marker): fix inheritance hook, topology load, update sync, and asdict
Bugs found via end-to-end testing of project-level marker definitions: 1. New links didn't inherit — apply_defs_to_new_link is async but was called without await in UDPLink.create(). 2. Project load crashed — load_project passed marker_definitions to Project.__init__. Now popped in load_project and restored separately in Project.open() (it backs a read-only property). 3. PUT on a definition didn't sync to links — update_marker's guard rejected even the project-layer sync call. Added an `inherited` bypass flag used by update_marker_definition. 4. _ubridge_add_marker_filter raised re.PatternError — the name regex used (?i)(?!global) look-around, invalid in Python's re module. Dropped the prefix check there: "global-*" names are legitimate at the uBridge boundary (inherited definitions); forbidden only at the user-facing schema. 5. GET /links hid inherited markers — asdict()'s runtime branch used _persist_markers() (which filters inherited markers). Restored self._markers for the runtime branch; only the topology_dump branch filters (inherited markers are rebuilt from definitions on load). 6. Duplicate "already exists" warnings on project open — open() fanned out definitions to all links, but UDPLink.create() had already done so via its inheritance hook. Removed the redundant fan-out in open().
This commit is contained in:
5 files changed
+23
-11
No files matched your search
@@ -641,7 +641,7 @@ class Link:
|
||||
"capture_compute_id": self.capture_compute_id,
|
||||
"link_type": self._link_type,
|
||||
"filters": self._filters,
|
||||
"markers": self._persist_markers(),
|
||||
"markers": self._markers,
|
||||
"suspend": self._suspended,
|
||||
"link_style": self._link_style,
|
||||
"wireshark": self._wireshark,
|
||||
|
||||
Reference in new issue
Block a user