class ForwardServerSchema(ConfigSchema):
"""
- Forward server configuration options.
+ Forward server configuration.
---
address: IP address(es) of a forward server.
class ForwardOptionsSchema(ConfigSchema):
"""
- Configuration options for forward subtree.
+ Subtree(s) forward options.
---
authoritative: The forwarding target is an authoritative server.
Configuration of forward subtree.
---
- subtree: Subtree to forward.
- servers: Forward server configuration.
- options: Configuration options for forward subtree.
+ subtree: Subtree(s) to forward.
+ servers: Forward servers configuration.
+ options: Subtree(s) forward options.
"""
- subtree: DomainName
+ subtree: ListOrItem[DomainName]
servers: Union[List[IPAddressOptionalPort], List[ForwardServerSchema]]
options: ForwardOptionsSchema = ForwardOptionsSchema()
{% if cfg.forward %}
{% for fwd in cfg.forward %}
-{{ policy_rule_forward_add(fwd) }}
+{% for subtree in fwd.subtree %}
+{{ policy_rule_forward_add(subtree,fwd.options,fwd.servers) }}
+{% endfor %}
{% endfor %}
{% endif %}
}
{%- endmacro %}
-{% macro policy_rule_forward_add(forward) -%}
-policy.rule_forward_add('{{ forward.subtree }}',{{ forward_options(forward.options) }},{{ forward_servers(forward.servers) }})
+{% macro policy_rule_forward_add(subtree,options,servers) -%}
+policy.rule_forward_add('{{ subtree }}',{{ forward_options(options) }},{{ forward_servers(servers) }})
{%- endmacro %}
def test_policy_rule_forward_add():
tmpl_str = """{% from 'macros/forward_macros.lua.j2' import policy_rule_forward_add %}
-{{ policy_rule_forward_add(rule) }}"""
+{{ policy_rule_forward_add(rule.subtree[0],rule.options,rule.servers) }}"""
rule = ForwardSchema(
{