From: Aleš Mrázek Date: Mon, 20 Jun 2022 20:35:58 +0000 (+0200) Subject: manager: datamodel: removed 'Dict' from policy sections X-Git-Tag: v6.0.0a1~34^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=323cde8258cc98ca66f9b681b8b2f54aeabfa9bc;p=thirdparty%2Fknot-resolver.git manager: datamodel: removed 'Dict' from policy sections - related to #702 --- diff --git a/manager/knot_resolver_manager/datamodel/config_schema.py b/manager/knot_resolver_manager/datamodel/config_schema.py index cb6fcae81..569524b50 100644 --- a/manager/knot_resolver_manager/datamodel/config_schema.py +++ b/manager/knot_resolver_manager/datamodel/config_schema.py @@ -2,7 +2,7 @@ import logging import os import socket import sys -from typing import Any, Dict, Optional, Union +from typing import Any, Dict, List, Optional, Union from jinja2 import Environment, FileSystemLoader, Template from typing_extensions import Literal @@ -23,7 +23,6 @@ from knot_resolver_manager.datamodel.slice_schema import SliceSchema from knot_resolver_manager.datamodel.static_hints_schema import StaticHintsSchema from knot_resolver_manager.datamodel.stub_zone_schema import StubZoneSchema from knot_resolver_manager.datamodel.supervisor_schema import SupervisorSchema -from knot_resolver_manager.datamodel.types import DomainName from knot_resolver_manager.datamodel.types.types import IDPattern, IntPositive, UncheckedPath from knot_resolver_manager.datamodel.view_schema import ViewSchema from knot_resolver_manager.datamodel.webmgmt_schema import WebmgmtSchema @@ -123,11 +122,11 @@ class KresConfig(SchemaNode): network: NetworkSchema = NetworkSchema() static_hints: StaticHintsSchema = StaticHintsSchema() views: Optional[Dict[str, ViewSchema]] = None - slices: Optional[Dict[str, SliceSchema]] = None - policy: Optional[Dict[str, PolicySchema]] = None - rpz: Optional[Dict[str, RPZSchema]] = None - stub_zones: Optional[Dict[DomainName, StubZoneSchema]] = None - forward_zones: Optional[Dict[DomainName, ForwardZoneSchema]] = None + slices: Optional[List[SliceSchema]] = None + policy: Optional[List[PolicySchema]] = None + rpz: Optional[List[RPZSchema]] = None + stub_zones: Optional[List[StubZoneSchema]] = None + forward_zones: Optional[List[ForwardZoneSchema]] = None cache: CacheSchema = CacheSchema() dnssec: Union[bool, DnssecSchema] = True dns64: Union[bool, Dns64Schema] = False @@ -149,11 +148,11 @@ class KresConfig(SchemaNode): network: NetworkSchema static_hints: StaticHintsSchema views: Optional[Dict[str, ViewSchema]] - slices: Optional[Dict[str, SliceSchema]] - policy: Optional[Dict[str, PolicySchema]] - rpz: Optional[Dict[str, RPZSchema]] - stub_zones: Optional[Dict[DomainName, StubZoneSchema]] - forward_zones: Optional[Dict[DomainName, ForwardZoneSchema]] + slices: Optional[List[SliceSchema]] + policy: Optional[List[PolicySchema]] + rpz: Optional[List[RPZSchema]] + stub_zones: Optional[List[StubZoneSchema]] + forward_zones: Optional[List[ForwardZoneSchema]] cache: CacheSchema dnssec: Union[Literal[False], DnssecSchema] dns64: Union[Literal[False], Dns64Schema] diff --git a/manager/knot_resolver_manager/datamodel/forward_zone_schema.py b/manager/knot_resolver_manager/datamodel/forward_zone_schema.py index 2bc1539df..ab55371a3 100644 --- a/manager/knot_resolver_manager/datamodel/forward_zone_schema.py +++ b/manager/knot_resolver_manager/datamodel/forward_zone_schema.py @@ -1,7 +1,7 @@ from typing import List, Optional, Union from knot_resolver_manager.datamodel.policy_schema import ForwardServerSchema -from knot_resolver_manager.datamodel.types import IPAddressOptionalPort, PolicyFlagEnum +from knot_resolver_manager.datamodel.types import DomainName, IPAddressOptionalPort, PolicyFlagEnum from knot_resolver_manager.utils import SchemaNode @@ -10,12 +10,14 @@ class ForwardZoneSchema(SchemaNode): Configuration of Forward Zone. --- + name: Domain name of the zone. tls: Enable/disable TLS for Forward servers. servers: IP address of Forward server. views: Use this Forward Zone only for clients defined by views. options: Configuration flags for Forward Zone. """ + name: DomainName tls: bool = False servers: Union[List[IPAddressOptionalPort], List[ForwardServerSchema]] views: Optional[List[str]] = None diff --git a/manager/knot_resolver_manager/datamodel/stub_zone_schema.py b/manager/knot_resolver_manager/datamodel/stub_zone_schema.py index 21ce20532..0d41f2f29 100644 --- a/manager/knot_resolver_manager/datamodel/stub_zone_schema.py +++ b/manager/knot_resolver_manager/datamodel/stub_zone_schema.py @@ -1,6 +1,6 @@ from typing import List, Optional, Union -from knot_resolver_manager.datamodel.types import IPAddressOptionalPort, PolicyFlagEnum +from knot_resolver_manager.datamodel.types import DomainName, IPAddressOptionalPort, PolicyFlagEnum from knot_resolver_manager.utils import SchemaNode @@ -20,11 +20,13 @@ class StubZoneSchema(SchemaNode): Configuration of Stub Zone. --- + name: Domain name of the zone. servers: IP address of Stub server. views: Use this Stub Zone only for clients defined by views. options: Configuration flags for Stub Zone. """ + name: DomainName servers: Union[List[IPAddressOptionalPort], List[StubServerSchema]] views: Optional[List[str]] = None options: Optional[List[PolicyFlagEnum]] = None diff --git a/manager/knot_resolver_manager/datamodel/templates/forward_zones.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/forward_zones.lua.j2 index 6a50b1001..3a1fb4ae5 100644 --- a/manager/knot_resolver_manager/datamodel/templates/forward_zones.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/forward_zones.lua.j2 @@ -2,8 +2,8 @@ {% from 'macros/view_macros.lua.j2' import view_tsig, view_addr %} {% if cfg.forward_zones %} -{% for name, zone in cfg.forward_zones.items() %} --- forward-zone: {{ name }} +{% for zone in cfg.forward_zones %} +-- forward-zone: {{ zone.name }} {% if zone.views -%} {# views set for forward-zone #} {% for view_id in zone.views -%} @@ -24,13 +24,13 @@ {% for tsig in view.tsig %} {%- if options -%} -{{ view_tsig(tsig|string, policy_suffix(policy_flags(options|list), policy_todname(name|string))) }} +{{ view_tsig(tsig|string, policy_suffix(policy_flags(options|list), policy_todname(zone.name|string))) }} {%- endif %} {% if zone.tls -%} -{{ view_tsig(tsig|string, policy_suffix(policy_tls_forward(zone.servers|list), policy_todname(name|string))) }} +{{ view_tsig(tsig|string, policy_suffix(policy_tls_forward(zone.servers|list), policy_todname(zone.name|string))) }} {% else %} -{{ view_tsig(tsig|string, policy_suffix(policy_forward(zone.servers|list), policy_todname(name|string))) }} +{{ view_tsig(tsig|string, policy_suffix(policy_forward(zone.servers|list), policy_todname(zone.name|string))) }} {%- endif %} {% endfor %} @@ -41,13 +41,13 @@ {% for addr in view.subnets %} {%- if options -%} -{{ view_addr(addr|string, policy_suffix(policy_flags(options|list), policy_todname(name|string))) }} +{{ view_addr(addr|string, policy_suffix(policy_flags(options|list), policy_todname(zone.name|string))) }} {%- endif %} {% if zone.tls -%} -{{ view_addr(addr|string, policy_suffix(policy_tls_forward(zone.servers|list), policy_todname(name|string))) }} +{{ view_addr(addr|string, policy_suffix(policy_tls_forward(zone.servers|list), policy_todname(zone.name|string))) }} {% else %} -{{ view_addr(addr|string, policy_suffix(policy_forward(zone.servers|list), policy_todname(name|string))) }} +{{ view_addr(addr|string, policy_suffix(policy_forward(zone.servers|list), policy_todname(zone.name|string))) }} {%- endif %} {% endfor %} @@ -58,13 +58,13 @@ {# no views set for forward-zone #} {% if zone.options -%} -{{ policy_add(policy_suffix(policy_flags(zone.options|list), policy_todname(name|string))) }} +{{ policy_add(policy_suffix(policy_flags(zone.options|list), policy_todname(zone.name|string))) }} {%- endif %} {% if zone.tls -%} -{{ policy_add(policy_suffix(policy_tls_forward(zone.servers|list), policy_todname(name|string))) }} +{{ policy_add(policy_suffix(policy_tls_forward(zone.servers|list), policy_todname(zone.name|string))) }} {% else %} -{{ policy_add(policy_suffix(policy_forward(zone.servers|list), policy_todname(name|string))) }} +{{ policy_add(policy_suffix(policy_forward(zone.servers|list), policy_todname(zone.name|string))) }} {%- endif %} {% endif %} diff --git a/manager/knot_resolver_manager/datamodel/templates/policy.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/policy.lua.j2 index a2c60062b..c5b86f745 100644 --- a/manager/knot_resolver_manager/datamodel/templates/policy.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/policy.lua.j2 @@ -5,8 +5,7 @@ {{ declare_policy_qtype_custom_filter() }} -{% for id, rule in cfg.policy.items() %} --- policy rule: {{ id }} +{% for rule in cfg.policy %} {% if rule.views -%} {# views set for rule #} {% for view_id in rule.views -%} diff --git a/manager/knot_resolver_manager/datamodel/templates/rpz.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/rpz.lua.j2 index c5dd539e4..08061c399 100644 --- a/manager/knot_resolver_manager/datamodel/templates/rpz.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/rpz.lua.j2 @@ -2,8 +2,7 @@ {% from 'macros/view_macros.lua.j2' import view_tsig, view_addr %} {% if cfg.rpz %} -{% for id, rpz in cfg.rpz.items() %} --- rpz: {{ id }} +{% for rpz in cfg.rpz %} {% if rpz.views -%} {# views set for rpz #} {% for view_id in rpz.views -%} diff --git a/manager/knot_resolver_manager/datamodel/templates/stub_zones.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/stub_zones.lua.j2 index 10db55ed9..85483e6e8 100644 --- a/manager/knot_resolver_manager/datamodel/templates/stub_zones.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/stub_zones.lua.j2 @@ -2,8 +2,8 @@ {% from 'macros/view_macros.lua.j2' import view_tsig, view_addr %} {% if cfg.stub_zones %} -{% for name, zone in cfg.stub_zones.items() %} --- stub-zone: {{ name }} +{% for zone in cfg.stub_zones %} +-- stub-zone: {{ zone.name }} {% if zone.views -%} {# views set for stub-zone #} {% for view_id in zone.views -%} @@ -23,10 +23,10 @@ {% for tsig in view.tsig -%} {%- if options -%} -{{ view_tsig(tsig|string, policy_suffix(policy_flags(options|list), policy_todname(name|string))) }} +{{ view_tsig(tsig|string, policy_suffix(policy_flags(options|list), policy_todname(zone.name|string))) }} {%- endif %} -{{ view_tsig(tsig|string, policy_suffix(policy_stub(zone.servers|list), policy_todname(name|string))) }} +{{ view_tsig(tsig|string, policy_suffix(policy_stub(zone.servers|list), policy_todname(zone.name|string))) }} {% endfor %} {%- endif -%} @@ -35,10 +35,10 @@ {% for addr in view.subnets -%} {%- if options -%} -{{ view_addr(addr|string, policy_suffix(policy_flags(options|list), policy_todname(name|string))) }} +{{ view_addr(addr|string, policy_suffix(policy_flags(options|list), policy_todname(zone.name|string))) }} {%- endif %} -{{ view_addr(addr|string, policy_suffix(policy_stub(zone.servers|list), policy_todname(name|string))) }} +{{ view_addr(addr|string, policy_suffix(policy_stub(zone.servers|list), policy_todname(zone.name|string))) }} {% endfor %} {% endif %} @@ -48,10 +48,10 @@ {# no views set for stub-zone #} {% if zone.options -%} -{{ policy_add(policy_suffix(policy_flags(zone.options|list), policy_todname(name|string))) }} +{{ policy_add(policy_suffix(policy_flags(zone.options|list), policy_todname(zone.name|string))) }} {%- endif %} -{{ policy_add(policy_suffix(policy_stub(zone.servers|list), policy_todname(name|string))) }} +{{ policy_add(policy_suffix(policy_stub(zone.servers|list), policy_todname(zone.name|string))) }} {% endif %} {% endfor %}