sync: add cross-subsystem event bus for config consistency
Add EventBus with loop guards to keep firewall, dnsmasq, wireguard, and network configs consistent. Handlers emit SyncEvent after mutations; subscribers compute diffs and write JSON without manual cascade loops.
This commit is contained in:
+13
-8
@@ -615,16 +615,21 @@ class TestParseAllZonesOutput:
|
||||
|
||||
def test_all_default_fields_present(self):
|
||||
result = firewall._parse_all_zones_output(
|
||||
"dmz\n"
|
||||
" target: default\n"
|
||||
" interfaces: \n"
|
||||
" services: \n"
|
||||
" rich rules: \n"
|
||||
"dmz\n target: default\n interfaces: \n services: \n rich rules: \n"
|
||||
)
|
||||
zone = result["dmz"]
|
||||
for field in (
|
||||
"interfaces", "sources", "services", "ports", "protocols",
|
||||
"forward-ports", "masquerade", "ics", "icmp-blocks", "module",
|
||||
"target", "rich-rules",
|
||||
"interfaces",
|
||||
"sources",
|
||||
"services",
|
||||
"ports",
|
||||
"protocols",
|
||||
"forward-ports",
|
||||
"masquerade",
|
||||
"ics",
|
||||
"icmp-blocks",
|
||||
"module",
|
||||
"target",
|
||||
"rich-rules",
|
||||
):
|
||||
assert field in zone, f"Missing field: {field}"
|
||||
|
||||
+1031
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user