From: Aleš Mrázek Date: Tue, 1 Aug 2023 08:47:21 +0000 (+0200) Subject: datamodel: forward: list for subtree allowed X-Git-Tag: v6.0.2~23^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7dbefec0ea69126bc528a333e555901c3bb4bd7;p=thirdparty%2Fknot-resolver.git datamodel: forward: list for subtree allowed --- diff --git a/manager/knot_resolver_manager/datamodel/forward_schema.py b/manager/knot_resolver_manager/datamodel/forward_schema.py index 66f50c4a7..25168ce52 100644 --- a/manager/knot_resolver_manager/datamodel/forward_schema.py +++ b/manager/knot_resolver_manager/datamodel/forward_schema.py @@ -8,7 +8,7 @@ from knot_resolver_manager.utils.modeling import ConfigSchema class ForwardServerSchema(ConfigSchema): """ - Forward server configuration options. + Forward server configuration. --- address: IP address(es) of a forward server. @@ -31,7 +31,7 @@ class ForwardServerSchema(ConfigSchema): class ForwardOptionsSchema(ConfigSchema): """ - Configuration options for forward subtree. + Subtree(s) forward options. --- authoritative: The forwarding target is an authoritative server. @@ -47,11 +47,11 @@ class ForwardSchema(ConfigSchema): 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() diff --git a/manager/knot_resolver_manager/datamodel/templates/forward.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/forward.lua.j2 index afb2c4924..24311da18 100644 --- a/manager/knot_resolver_manager/datamodel/templates/forward.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/forward.lua.j2 @@ -2,6 +2,8 @@ {% 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 %} diff --git a/manager/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2 index f67773242..b7723fb07 100644 --- a/manager/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/macros/forward_macros.lua.j2 @@ -37,6 +37,6 @@ ca_file='{{ server.ca_file }}', } {%- 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 %} diff --git a/manager/tests/unit/datamodel/templates/test_forward_macros.py b/manager/tests/unit/datamodel/templates/test_forward_macros.py index 5f80df159..4e8a5bce9 100644 --- a/manager/tests/unit/datamodel/templates/test_forward_macros.py +++ b/manager/tests/unit/datamodel/templates/test_forward_macros.py @@ -5,7 +5,7 @@ from knot_resolver_manager.datamodel.types import IPAddressOptionalPort 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( {