ui: show backend traffic audit in dialog log

This commit is contained in:
beckline
2026-02-16 01:36:42 +03:00
parent 5eb292f17a
commit dd367728f6
3 changed files with 55 additions and 0 deletions

View File

@@ -580,6 +580,16 @@ RU: Восстанавливает маршруты/nft из последнег
self.txt_app.setReadOnly(True)
tab_log = QWidget()
tab_log_layout = QVBoxLayout(tab_log)
row_log = QHBoxLayout()
self.btn_app_audit = QPushButton("Run audit")
self.btn_app_audit.setToolTip(
"EN: Runs backend traffic audit (duplicates + nft consistency) and prints it here.\n"
"RU: Запускает backend-аудит трафика (дубли + nft консистентность) и печатает сюда."
)
self.btn_app_audit.clicked.connect(self.on_app_audit)
row_log.addWidget(self.btn_app_audit)
row_log.addStretch(1)
tab_log_layout.addLayout(row_log)
tab_log_layout.addWidget(self.txt_app, stretch=1)
self.apps_tabs.addTab(tab_log, "Log")
@@ -1742,6 +1752,22 @@ RU: Применяет policy-rules и проверяет health. При оши
self._safe(work, title="App picker error")
def on_app_audit(self) -> None:
def work() -> None:
audit = self.ctrl.traffic_audit()
pretty = (getattr(audit, "pretty", "") or "").strip()
if not pretty:
pretty = f"ok={getattr(audit, 'ok', False)} message={getattr(audit, 'message', '')}"
self._append_app_log("[audit]\n" + pretty)
issues = list(getattr(audit, "issues", []) or [])
ok = bool(getattr(audit, "ok", False)) and len(issues) == 0
if issues:
self._set_action_status(f"Audit: issues={len(issues)}", ok=False)
else:
self._set_action_status("Audit: OK", ok=True)
self._safe(work, title="Traffic audit error")
def _run_systemd_unit(self, cmdline: str, *, unit: str) -> tuple[str, str]:
args = shlex.split(cmdline or "")
if not args: