]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
datamodel: rpz: schema created
authorAleš <ales.mrazek@nic.cz>
Tue, 30 Nov 2021 13:45:59 +0000 (14:45 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 8 Apr 2022 14:17:53 +0000 (16:17 +0200)
- lint error fix

manager/knot_resolver_manager/datamodel/config_schema.py
manager/knot_resolver_manager/datamodel/rpz_schema.py [new file with mode: 0644]
manager/knot_resolver_manager/datamodel/view_schema.py

index db62badb3b8e54957b936ff31e70763a34587ea1..0f53a31653e197d2e6750d25fcd57485dd599f94 100644 (file)
@@ -14,6 +14,7 @@ from knot_resolver_manager.datamodel.lua_schema import LuaSchema
 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.rpz_schema import RPZSchema
 from knot_resolver_manager.datamodel.server_schema import ServerSchema
 from knot_resolver_manager.datamodel.static_hints_schema import StaticHintsSchema
 from knot_resolver_manager.datamodel.stub_zone_schema import StubZoneSchema
@@ -52,6 +53,7 @@ class KresConfig(SchemaNode):
         static_hints: StaticHintsSchema = StaticHintsSchema()
         views: Optional[Dict[str, ViewSchema]] = None
         policy: Optional[Dict[str, PolicySchema]] = None
+        rpz: Optional[Dict[DomainName, RPZSchema]] = None
         stub_zones: Optional[Dict[DomainName, StubZoneSchema]] = None
         forward_zones: Optional[Dict[DomainName, ForwardZoneSchema]] = None
         cache: CacheSchema = CacheSchema()
@@ -68,6 +70,7 @@ class KresConfig(SchemaNode):
     static_hints: StaticHintsSchema
     views: Optional[Dict[str, ViewSchema]]
     policy: Optional[Dict[str, PolicySchema]]
+    rpz: Optional[Dict[DomainName, RPZSchema]]
     stub_zones: Optional[Dict[DomainName, StubZoneSchema]]
     forward_zones: Optional[Dict[DomainName, ForwardZoneSchema]]
     cache: CacheSchema
diff --git a/manager/knot_resolver_manager/datamodel/rpz_schema.py b/manager/knot_resolver_manager/datamodel/rpz_schema.py
new file mode 100644 (file)
index 0000000..c9bd059
--- /dev/null
@@ -0,0 +1,15 @@
+from typing import List, Optional
+
+from knot_resolver_manager.datamodel.policy_schema import ActionEnum
+from knot_resolver_manager.datamodel.types import AnyPath
+from knot_resolver_manager.datamodel.view_schema import FlagsEnum
+from knot_resolver_manager.utils import SchemaNode
+
+
+class RPZSchema(SchemaNode):
+    action: ActionEnum
+    file: AnyPath
+    watch: bool = True
+    message: Optional[str] = None
+    views: Optional[str] = None
+    options: Optional[List[FlagsEnum]] = None
index d5875ef5674a670e39c9b05f8d3457b34b2bead1..8bbbbf1e99f47b738ecfaf319259f00cfb156f8a 100644 (file)
@@ -6,7 +6,8 @@ from knot_resolver_manager.utils.types import LiteralEnum
 
 # FLAGS from https://knot-resolver.readthedocs.io/en/stable/lib.html?highlight=options#c.kr_qflags
 FlagsEnum = LiteralEnum[
-    "no-minimize" "no-ipv4",
+    "no-minimize",
+    "no-ipv4",
     "no-ipv6",
     "tcp",
     "resolved",