diff --git a/backend/src/api/nft_manager.py b/backend/src/api/nft_manager.py index e0cd803..8633bda 100644 --- a/backend/src/api/nft_manager.py +++ b/backend/src/api/nft_manager.py @@ -61,24 +61,10 @@ class NftManager: Try to 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.nft.json_cmd("list ruleset") + if res["rc"] != 0: + raise NftError(f"nft list ruleset failed: {res['stderr']}") + return res["stdout"] def list_chain_text(self, family: str, table: str, chain: str) -> str: """