From 6f5687a98b538bc73a56df12aec880f086438db2 Mon Sep 17 00:00:00 2001 From: hygienic-books Date: Tue, 5 Jul 2022 17:22:03 +0200 Subject: [PATCH] feat(debug): Add function to uniformly render debug OSError output --- update-firewall-source.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/update-firewall-source.py b/update-firewall-source.py index 9f36171..05f97c4 100644 --- a/update-firewall-source.py +++ b/update-firewall-source.py @@ -473,6 +473,28 @@ def gen_fwd_direct_scaffolding() -> lxml.builder.ElementMaker: return fw_rule_data +def ose_handler( + os_error: OSError, + human_text: str = None, + exit_code: int = None) -> None: + nl = "\n" + log.error(f"{human_text if human_text else exit_code_desc.get(exit_code)}" + f"{nl}Verbatim exception was:\n" + f"{os_error}" + f"""{nl + "Exiting " + str(exit_code) + " ..." if exit_code else ""}""") + + +def get_xml_str_repr() -> str: + global arg_fw_rule_data + + fwd_direct_xml_str = lxml.etree.tostring(arg_fw_rule_data, + pretty_print=True, + encoding="UTF-8", + xml_declaration=True).decode() + + return fwd_direct_xml_str + + def write_new_fwd_direct_xml( config_obj: configparser.ConfigParser()) -> bool: global arg_fw_rule_data @@ -490,10 +512,7 @@ def write_new_fwd_direct_xml( fwd_file_handle.write(fwd_direct_xml_str) fwd_file_handle.truncate() except OSError as ose: - log.error(f"Unable to open firewalld direct rules file for updating.\n" - f"Verbatim exception was:\n" - f"f{ose}\n" - f"Exiting 9 ...") + ose_handler(os_error=ose, exit_code=9) sys.exit(9) else: return True