From: Aleš Mrázek Date: Tue, 20 Jun 2023 12:52:54 +0000 (+0200) Subject: manager: datamodel: 'str' type removed from schemas X-Git-Tag: v6.0.2~31^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23b1a880934abda07aec584271a02d7a0feda084;p=thirdparty%2Fknot-resolver.git manager: datamodel: 'str' type removed from schemas --- diff --git a/manager/knot_resolver_manager/datamodel/cache_schema.py b/manager/knot_resolver_manager/datamodel/cache_schema.py index 8adc41bea..ad0211f8f 100644 --- a/manager/knot_resolver_manager/datamodel/cache_schema.py +++ b/manager/knot_resolver_manager/datamodel/cache_schema.py @@ -2,7 +2,16 @@ from typing import List, Optional, Union from typing_extensions import Literal -from knot_resolver_manager.datamodel.types import Dir, DomainName, File, IntNonNegative, Percent, SizeUnit, TimeUnit +from knot_resolver_manager.datamodel.types import ( + Dir, + DomainName, + EscapedStr, + File, + IntNonNegative, + Percent, + SizeUnit, + TimeUnit, +) from knot_resolver_manager.utils.modeling import ConfigSchema from knot_resolver_manager.utils.modeling.base_schema import lazy_default @@ -19,7 +28,7 @@ class PrefillSchema(ConfigSchema): """ origin: DomainName - url: str + url: EscapedStr refresh_interval: TimeUnit = TimeUnit("1d") ca_file: Optional[File] = None diff --git a/manager/knot_resolver_manager/datamodel/config_schema.py b/manager/knot_resolver_manager/datamodel/config_schema.py index 4fdf5801d..6046f7a83 100644 --- a/manager/knot_resolver_manager/datamodel/config_schema.py +++ b/manager/knot_resolver_manager/datamodel/config_schema.py @@ -19,9 +19,7 @@ from knot_resolver_manager.datamodel.management_schema import ManagementSchema from knot_resolver_manager.datamodel.monitoring_schema import MonitoringSchema from knot_resolver_manager.datamodel.network_schema import NetworkSchema from knot_resolver_manager.datamodel.options_schema import OptionsSchema -from knot_resolver_manager.datamodel.policy_schema import PolicySchema -from knot_resolver_manager.datamodel.slice_schema import SliceSchema -from knot_resolver_manager.datamodel.types import Dir, IntPositive +from knot_resolver_manager.datamodel.types import Dir, EscapedStr, IntPositive from knot_resolver_manager.datamodel.view_schema import ViewSchema from knot_resolver_manager.datamodel.webmgmt_schema import WebmgmtSchema from knot_resolver_manager.utils.modeling import ConfigSchema @@ -95,8 +93,6 @@ class KresConfig(ConfigSchema): network: Network connections and protocols configuration. views: List of views and its configuration. local_data: Local data for forward records (A/AAAA) and reverse records (PTR). - slices: Split the entire DNS namespace into distinct slices. - policy: List of policy rules and its configuration. forward: List of Forward Zones and its configuration. cache: DNS resolver cache configuration. dnssec: Disable DNSSEC, enable with defaults or set new configuration. @@ -107,8 +103,8 @@ class KresConfig(ConfigSchema): """ version: int = 1 - nsid: Optional[str] = None - hostname: Optional[str] = None + nsid: Optional[EscapedStr] = None + hostname: Optional[EscapedStr] = None rundir: Dir = lazy_default(Dir, "/var/run/knot-resolver") workers: Union[Literal["auto"], IntPositive] = IntPositive(1) max_workers: IntPositive = IntPositive(_default_max_worker_count()) @@ -118,8 +114,6 @@ class KresConfig(ConfigSchema): network: NetworkSchema = NetworkSchema() views: Optional[List[ViewSchema]] = None local_data: LocalDataSchema = LocalDataSchema() - slices: Optional[List[SliceSchema]] = None - policy: Optional[List[PolicySchema]] = None forward: Optional[List[ForwardSchema]] = None cache: CacheSchema = lazy_default(CacheSchema, {}) dnssec: Union[bool, DnssecSchema] = True @@ -130,8 +124,8 @@ class KresConfig(ConfigSchema): _LAYER = Raw - nsid: Optional[str] - hostname: str + nsid: Optional[EscapedStr] + hostname: EscapedStr rundir: Dir workers: IntPositive max_workers: IntPositive @@ -141,8 +135,6 @@ class KresConfig(ConfigSchema): network: NetworkSchema views: Optional[List[ViewSchema]] local_data: LocalDataSchema - slices: Optional[List[SliceSchema]] - policy: Optional[List[PolicySchema]] forward: Optional[List[ForwardSchema]] cache: CacheSchema dnssec: Union[Literal[False], DnssecSchema] diff --git a/manager/knot_resolver_manager/datamodel/dnssec_schema.py b/manager/knot_resolver_manager/datamodel/dnssec_schema.py index 3eb5ec3d6..5e274c9a9 100644 --- a/manager/knot_resolver_manager/datamodel/dnssec_schema.py +++ b/manager/knot_resolver_manager/datamodel/dnssec_schema.py @@ -1,6 +1,6 @@ from typing import List, Optional -from knot_resolver_manager.datamodel.types import IntNonNegative, TimeUnit +from knot_resolver_manager.datamodel.types import DomainName, EscapedStr, File, IntNonNegative, TimeUnit from knot_resolver_manager.utils.modeling import ConfigSchema @@ -14,7 +14,7 @@ class TrustAnchorFileSchema(ConfigSchema): """ - file: str + file: File read_only: bool = False @@ -40,6 +40,6 @@ class DnssecSchema(ConfigSchema): keep_removed: IntNonNegative = IntNonNegative(0) refresh_time: Optional[TimeUnit] = None hold_down_time: TimeUnit = TimeUnit("30d") - trust_anchors: Optional[List[str]] = None - negative_trust_anchors: Optional[List[str]] = None + trust_anchors: Optional[List[EscapedStr]] = None + negative_trust_anchors: Optional[List[DomainName]] = None trust_anchors_files: Optional[List[TrustAnchorFileSchema]] = None diff --git a/manager/knot_resolver_manager/datamodel/local_data_schema.py b/manager/knot_resolver_manager/datamodel/local_data_schema.py index 65fa76880..ce8e5db05 100644 --- a/manager/knot_resolver_manager/datamodel/local_data_schema.py +++ b/manager/knot_resolver_manager/datamodel/local_data_schema.py @@ -2,7 +2,15 @@ from typing import Dict, List, Optional from typing_extensions import Literal -from knot_resolver_manager.datamodel.types import DomainName, File, IDPattern, IPAddress, ListOrItem, TimeUnit +from knot_resolver_manager.datamodel.types import ( + DomainName, + EscapedStr, + File, + IDPattern, + IPAddress, + ListOrItem, + TimeUnit, +) from knot_resolver_manager.utils.modeling import ConfigSchema @@ -29,7 +37,7 @@ class SubtreeSchema(ConfigSchema): addresses: Optional[List[IPAddress]] = None roots: Optional[List[DomainName]] = None roots_file: Optional[File] = None - roots_url: Optional[str] = None + roots_url: Optional[EscapedStr] = None refresh: Optional[TimeUnit] = None def _validate(self) -> None: @@ -77,6 +85,6 @@ class LocalDataSchema(ConfigSchema): root_fallback_addresses_files: Optional[ListOrItem[File]] = None addresses: Optional[Dict[DomainName, IPAddress]] = None addresses_files: Optional[ListOrItem[File]] = None - records: Optional[str] = None + records: Optional[EscapedStr] = None subtrees: Optional[List[SubtreeSchema]] = None rpz: Optional[List[RPZSchema]] = None diff --git a/manager/knot_resolver_manager/datamodel/lua_schema.py b/manager/knot_resolver_manager/datamodel/lua_schema.py index bff8e289f..cf49b7124 100644 --- a/manager/knot_resolver_manager/datamodel/lua_schema.py +++ b/manager/knot_resolver_manager/datamodel/lua_schema.py @@ -1,5 +1,6 @@ from typing import Optional +from knot_resolver_manager.datamodel.types import File from knot_resolver_manager.utils.modeling import ConfigSchema @@ -15,7 +16,7 @@ class LuaSchema(ConfigSchema): script_only: bool = False script: Optional[str] = None - script_file: Optional[str] = None + script_file: Optional[File] = None def _validate(self) -> None: if self.script and self.script_file: diff --git a/manager/knot_resolver_manager/datamodel/monitoring_schema.py b/manager/knot_resolver_manager/datamodel/monitoring_schema.py index e4cdabe85..dfc4a1167 100644 --- a/manager/knot_resolver_manager/datamodel/monitoring_schema.py +++ b/manager/knot_resolver_manager/datamodel/monitoring_schema.py @@ -2,14 +2,14 @@ from typing import Union from typing_extensions import Literal -from knot_resolver_manager.datamodel.types import DomainName, IPAddress, PortNumber, TimeUnit +from knot_resolver_manager.datamodel.types import DomainName, EscapedStr, IPAddress, PortNumber, TimeUnit from knot_resolver_manager.utils.modeling import ConfigSchema class GraphiteSchema(ConfigSchema): host: Union[IPAddress, DomainName] port: PortNumber = PortNumber(2003) - prefix: str = "" + prefix: EscapedStr = EscapedStr("") interval: TimeUnit = TimeUnit("5s") tcp: bool = False diff --git a/manager/knot_resolver_manager/datamodel/network_schema.py b/manager/knot_resolver_manager/datamodel/network_schema.py index 2349bdc56..10051946e 100644 --- a/manager/knot_resolver_manager/datamodel/network_schema.py +++ b/manager/knot_resolver_manager/datamodel/network_schema.py @@ -3,6 +3,7 @@ from typing import List, Optional, Union from typing_extensions import Literal from knot_resolver_manager.datamodel.types import ( + EscapedStr, File, FilePath, Int0_512, @@ -62,7 +63,7 @@ class TLSSchema(ConfigSchema): cert_file: Optional[File] = None key_file: Optional[File] = None - sticket_secret: Optional[str] = None + sticket_secret: Optional[EscapedStr] = None sticket_secret_file: Optional[File] = None auto_discovery: bool = False padding: Union[bool, Int0_512] = True diff --git a/manager/knot_resolver_manager/statistics.py b/manager/knot_resolver_manager/statistics.py index 069f4e75f..c66e1e1c1 100644 --- a/manager/knot_resolver_manager/statistics.py +++ b/manager/knot_resolver_manager/statistics.py @@ -395,7 +395,7 @@ async def _configure_graphite_bridge(config: KresConfig) -> None: ) _graphite_bridge = GraphiteBridge((str(config.monitoring.graphite.host), int(config.monitoring.graphite.port))) _graphite_bridge.start( # type: ignore - interval=config.monitoring.graphite.interval.seconds(), prefix=config.monitoring.graphite.prefix + interval=config.monitoring.graphite.interval.seconds(), prefix=str(config.monitoring.graphite.prefix) )