feat(xml): Add and detect XML rule elements

This commit is contained in:
hygienic-books 2022-07-05 04:46:53 +02:00
parent a4ff9aff4b
commit ea344c8940

View File

@ -233,10 +233,37 @@ def validate_config_sections(
config_obj.remove_option(this_section, key) config_obj.remove_option(this_section, key)
def gen_fw_rule_xml(ip_addresses: dict[str, list]) -> lxml.builder.ElementMaker: def has_child_elem(elem_name: str, attr_value: str) -> bool:
len_ipv4_addresses = len(ip_addresses["ipv4"]) global arg_fw_rule_data
len_ipv6_addresses = len(ip_addresses["ipv6"]) attr_name = "ipv"
data = lxml.builder.ElementMaker()
for elem in arg_fw_rule_data.findall(elem_name):
if elem.attrib[attr_name] == attr_value:
log.debug(f"""XML has element '<{elem_name} {attr_name}="{attr_value}" .../>'""")
return True
log.debug(f"""No XML element '<{elem_name} {attr_name}="{attr_value}" .../>'""")
return False
def add_chain_elem(elem_name: str, addr_family: str) -> bool:
global arg_fw_rule_data
log.debug(f"Adding new ...")
for chain in ["FILTERS", "DOCKER-USER"]:
try:
lxml.etree.SubElement(arg_fw_rule_data, elem_name,
ipv=f"{addr_family}",
table="filter",
chain=chain)
except lxml.etree.LxmlError as le:
log.error(f"""Failed to add XML '<{elem_name} ipv=f"{addr_family}" .../>'\n"""
f"Verbatim exception was:\n"
f"f{le}\n"
f"Exiting 8 ...")
sys.exit(8)
return True
direct_tag = data.direct direct_tag = data.direct
chain_tag = data.chain chain_tag = data.chain