This commit is contained in:
@@ -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:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user