]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: datamodel: tags added to views
authorAleš Mrázek <ales.mrazek@nic.cz>
Thu, 16 Feb 2023 09:10:48 +0000 (10:10 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 9 Jun 2023 11:54:07 +0000 (11:54 +0000)
manager/knot_resolver_manager/datamodel/config_schema.py
manager/knot_resolver_manager/datamodel/types/__init__.py
manager/knot_resolver_manager/datamodel/view_schema.py

index 9e1903a3ae8e91b14e1f12079ae2dc46039108d1..5a290cdb28219720ab1a99d5910e6c8facb6a4b4 100644 (file)
@@ -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]]
index bdd22c824b05a8f65f546433147018f6a75c770b..3458ee7666314ef0126c338bfbbcfebaef03dd75 100644 (file)
@@ -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",
index f84ab428b229e8aa107724a0f0bad5a07c20e1b4..5732616e857ec2453be16d2118e589df4071c4ec 100644 (file)
@@ -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: