refactor: update lib modules (common, dnsmasq, logging, network, state, nginx)
This commit is contained in:
+38
-6
@@ -60,6 +60,43 @@ class State:
|
||||
self._data: dict[str, dict[str, Any] | None] = {
|
||||
name: None for name in self.SUBSYSTEMS
|
||||
}
|
||||
self._versions: dict[str, int] = {name: 0 for name in self.SUBSYSTEMS}
|
||||
self._last_broadcast: dict[str, int] | None = None
|
||||
|
||||
def bump(self, subsystem: str) -> None:
|
||||
"""Increment the version counter for *subsystem*.
|
||||
|
||||
Args:
|
||||
subsystem: Subsystem name.
|
||||
"""
|
||||
if subsystem in self._versions:
|
||||
self._versions[subsystem] += 1
|
||||
|
||||
def get_versions(self) -> dict[str, int]:
|
||||
"""Return a shallow copy of all subsystem versions.
|
||||
|
||||
Returns:
|
||||
Dict mapping subsystem names to their current version integers.
|
||||
"""
|
||||
return dict(self._versions)
|
||||
|
||||
def get_updated_versions(self) -> dict[str, int]:
|
||||
"""Return versions that changed since the last broadcast.
|
||||
|
||||
After calling, ``_last_broadcast`` is updated to match current versions.
|
||||
|
||||
Returns:
|
||||
Dict of subsystems whose versions changed, or empty dict.
|
||||
"""
|
||||
if self._last_broadcast is None:
|
||||
self._last_broadcast = dict(self._versions)
|
||||
return {}
|
||||
updated: dict[str, int] = {}
|
||||
for name, v in self._versions.items():
|
||||
if v != self._last_broadcast.get(name, 0):
|
||||
updated[name] = v
|
||||
self._last_broadcast[name] = v
|
||||
return updated
|
||||
|
||||
def get(self, subsystem: str) -> dict[str, Any] | None:
|
||||
"""Get state data for *subsystem*.
|
||||
@@ -212,7 +249,7 @@ def _collect_firewall() -> dict[str, Any]:
|
||||
parts = line.split()
|
||||
if len(parts) < 4:
|
||||
continue
|
||||
addr_name = parts[1]
|
||||
addr_name = parts[1].split("@")[0]
|
||||
addr_key = "ipv6" if parts[2] == "inet6" else "ips"
|
||||
for entry in iface_map.values():
|
||||
if entry["name"] == addr_name:
|
||||
@@ -406,11 +443,6 @@ def _collect_nginx() -> dict[str, Any]:
|
||||
if raw:
|
||||
from lib.common import deep_merge
|
||||
|
||||
default_cfg: dict[str, Any] = {
|
||||
"domains": {},
|
||||
"management": None,
|
||||
"ssl": deepcopy(DEFAULT_SSL),
|
||||
}
|
||||
cfg = deep_merge(default_cfg, raw)
|
||||
if "ssl" not in cfg:
|
||||
cfg["ssl"] = deepcopy(DEFAULT_SSL)
|
||||
|
||||
Reference in New Issue
Block a user