From 5268f8dd4e4903aacd9189e4ab05e1fc600cc003 Mon Sep 17 00:00:00 2001 From: malmert Date: Sat, 28 Feb 2026 22:59:42 +0100 Subject: [PATCH] test --- backend/src/api/nft_manager.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/backend/src/api/nft_manager.py b/backend/src/api/nft_manager.py index e0cd803..a37d01d 100644 --- a/backend/src/api/nft_manager.py +++ b/backend/src/api/nft_manager.py @@ -58,27 +58,19 @@ class NftManager: def list_rules_json(self) -> Dict[str, Any]: """ - Try to obtain nft -j list ruleset (JSON). Returns parsed JSON dict on success. + Obtain nft -j list ruleset (JSON). Returns parsed JSON dict on success. Raises NftError on failure or when output cannot be parsed as JSON. """ - cmd_variants = ["list ruleset -j", "list ruleset"] - last_err = None - for c in cmd_variants: - res = self.cmd(c) - if res["rc"] != 0: - last_err = res["stderr"] - continue - out = res["stdout"] - if not out: - last_err = "empty output" - continue - try: - parsed = json.loads(out) - return parsed - except json.JSONDecodeError as e: - last_err = f"json decode error: {e}" - continue - raise NftError(f"unable to get JSON ruleset: {last_err}") + res = self.cmd("list ruleset") + if res["rc"] != 0: + raise NftError(f"nft list ruleset failed: {res['stderr']}") + out = res["stdout"] + if not out: + raise NftError("nft list ruleset returned empty output") + try: + return json.loads(out) + except json.JSONDecodeError as e: + raise NftError(f"json decode error: {e}") def list_chain_text(self, family: str, table: str, chain: str) -> str: """