From 9f2f2c71f280cc357a924df8d12d76c9818dc8c9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ale=C5=A1=20Mr=C3=A1zek?= Date: Thu, 16 Feb 2023 10:10:48 +0100 Subject: [PATCH] manager: datamodel: tags added to views --- manager/knot_resolver_manager/datamodel/config_schema.py | 4 ++-- manager/knot_resolver_manager/datamodel/types/__init__.py | 2 ++ manager/knot_resolver_manager/datamodel/view_schema.py | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/manager/knot_resolver_manager/datamodel/config_schema.py b/manager/knot_resolver_manager/datamodel/config_schema.py index 9e1903a3a..5a290cdb2 100644 --- a/manager/knot_resolver_manager/datamodel/config_schema.py +++ b/manager/knot_resolver_manager/datamodel/config_schema.py @@ -122,7 +122,7 @@ class KresConfig(ConfigSchema): options: OptionsSchema = OptionsSchema() network: NetworkSchema = NetworkSchema() static_hints: StaticHintsSchema = StaticHintsSchema() - views: Optional[Dict[str, ViewSchema]] = None + views: Optional[List[ViewSchema]] = None slices: Optional[List[SliceSchema]] = None policy: Optional[List[PolicySchema]] = None rpz: Optional[List[RPZSchema]] = None @@ -147,7 +147,7 @@ class KresConfig(ConfigSchema): options: OptionsSchema network: NetworkSchema static_hints: StaticHintsSchema - views: Optional[Dict[str, ViewSchema]] + views: Optional[List[ViewSchema]] slices: Optional[List[SliceSchema]] policy: Optional[List[PolicySchema]] rpz: Optional[List[RPZSchema]] diff --git a/manager/knot_resolver_manager/datamodel/types/__init__.py b/manager/knot_resolver_manager/datamodel/types/__init__.py index bdd22c824..3458ee766 100644 --- a/manager/knot_resolver_manager/datamodel/types/__init__.py +++ b/manager/knot_resolver_manager/datamodel/types/__init__.py @@ -2,6 +2,7 @@ from .enums import DNSRecordTypeEnum, PolicyActionEnum, PolicyFlagEnum from .files import AbsoluteDir, Dir, File, FilePath from .types import ( DomainName, + IDPattern, Int0_512, Int0_65535, InterfaceName, @@ -26,6 +27,7 @@ __all__ = [ "PolicyFlagEnum", "DNSRecordTypeEnum", "DomainName", + "IDPattern", "Int0_512", "Int0_65535", "InterfaceName", diff --git a/manager/knot_resolver_manager/datamodel/view_schema.py b/manager/knot_resolver_manager/datamodel/view_schema.py index f84ab428b..5732616e8 100644 --- a/manager/knot_resolver_manager/datamodel/view_schema.py +++ b/manager/knot_resolver_manager/datamodel/view_schema.py @@ -1,6 +1,6 @@ from typing import List, Optional -from knot_resolver_manager.datamodel.types import IPNetwork, PolicyFlagEnum +from knot_resolver_manager.datamodel.types import IDPattern, IPNetwork, PolicyFlagEnum from knot_resolver_manager.utils.modeling import ConfigSchema @@ -11,11 +11,13 @@ class ViewSchema(ConfigSchema): --- subnets: Identifies the client based on his subnet. tsig: Identifies the client based on a TSIG key name (for testing purposes, TSIG signature is not verified!). + tags: Tags to link with other policy rules. options: Configuration flags for clients identified by the view. """ subnets: Optional[List[IPNetwork]] = None tsig: Optional[List[str]] = None + tags: List[IDPattern] options: Optional[List[PolicyFlagEnum]] = None def _validate(self) -> None: -- 2.47.3