]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
datamodel: renamed defer section to prioritization
authorAleš Mrázek <ales.mrazek@nic.cz>
Tue, 15 Apr 2025 09:32:29 +0000 (11:32 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 31 Oct 2025 14:11:38 +0000 (15:11 +0100)
- renamed /defer/log-period -> /defer/logging-period

NEWS
doc/_static/config.schema.json
python/knot_resolver/datamodel/config_schema.py
python/knot_resolver/datamodel/defer_schema.py [deleted file]
python/knot_resolver/datamodel/prioritization_schema.py [new file with mode: 0644]
python/knot_resolver/datamodel/templates/defer.lua.j2 [deleted file]
python/knot_resolver/datamodel/templates/kresd.lua.j2
python/knot_resolver/datamodel/templates/policy-loader.lua.j2
python/knot_resolver/datamodel/templates/prioritization.lua.j2 [new file with mode: 0644]
python/knot_resolver/manager/manager.py

diff --git a/NEWS b/NEWS
index 0668c765a9a28b4e98d480fa3403d4a14f314d3d..d1bb25c620d5513341db939c05676680082986f3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,8 @@ Incompatible changes
   - /network/tls/auto-discovery
   - /webmgmt
 - Renamed/moved options in the declarative configuration model (YAML).
+  - /defer/* -> /prioritization/*
+  - /defer/log-period -> /prioritization/logging-period
   - /dns64: true|false -> /dns64/enabled: true|false
   - /dns64/rev-ttl -> /dns64/reverse-ttl
   - /dnssec: true|false -> /dnssec/enabled: true|false
index 9f324e98f3930015a3516a141fa3d7e732a72e80..bad48d6c0ff5c3e6ccb036f4411cbc773c85164f 100644 (file)
             },
             "default": null
         },
-        "defer": {
+        "prioritization": {
             "description": "Configuration of request prioritization (defer).",
             "type": "object",
             "properties": {
                 "enabled": {
                     "type": "boolean",
-                    "description": "Use request prioritization.",
+                    "description": "Enable/disable request prioritization.",
                     "default": false
                 },
-                "log-period": {
+                "logging-period": {
                     "type": "string",
                     "pattern": "^(\\d+)(us|ms|s|m|h|d)$",
                     "description": "Minimal time between two log messages, or '0s' to disable.",
             },
             "default": {
                 "enabled": false,
-                "log_period": "0s"
+                "logging_period": "0s"
             }
         },
         "lua": {
index c14143b18e89f8c930d408da323970d4d69b88df..8eebf8b17db714539b251d50b96abe0d0e8a8250 100644 (file)
@@ -5,7 +5,6 @@ from typing import Any, Dict, List, Literal, Optional, Tuple, Union
 
 from knot_resolver.constants import API_SOCK_FILE, RUN_DIR, VERSION
 from knot_resolver.datamodel.cache_schema import CacheSchema
-from knot_resolver.datamodel.defer_schema import DeferSchema
 from knot_resolver.datamodel.dns64_schema import Dns64Schema
 from knot_resolver.datamodel.dnssec_schema import DnssecSchema
 from knot_resolver.datamodel.forward_schema import FallbackSchema, ForwardSchema
@@ -17,6 +16,7 @@ from knot_resolver.datamodel.management_schema import ManagementSchema
 from knot_resolver.datamodel.monitoring_schema import MonitoringSchema
 from knot_resolver.datamodel.network_schema import NetworkSchema
 from knot_resolver.datamodel.options_schema import OptionsSchema
+from knot_resolver.datamodel.prioritization_schema import PrioritizationSchema
 from knot_resolver.datamodel.rate_limiting_schema import RateLimitingSchema
 from knot_resolver.datamodel.templates import KRESD_CONFIG_TEMPLATE, POLICY_LOADER_CONFIG_TEMPLATE
 from knot_resolver.datamodel.types import EscapedStr, IntPositive, WritableDir
@@ -107,7 +107,7 @@ class KresConfig(ConfigSchema):
         monitoring: Metrics exposisition configuration (Prometheus, Graphite)
         lua: Custom Lua configuration.
         rate_limiting: Configuration of rate limiting.
-        defer: Configuration of request prioritization (defer).
+        prioritization: Configuration of request prioritization (defer).
         """
 
         version: int = 1
@@ -128,7 +128,7 @@ class KresConfig(ConfigSchema):
         logging: LoggingSchema = LoggingSchema()
         monitoring: MonitoringSchema = MonitoringSchema()
         rate_limiting: Optional[RateLimitingSchema] = None
-        defer: DeferSchema = DeferSchema()
+        prioritization: PrioritizationSchema = PrioritizationSchema()
         lua: LuaSchema = LuaSchema()
 
     _LAYER = Raw
@@ -150,7 +150,7 @@ class KresConfig(ConfigSchema):
     logging: LoggingSchema
     monitoring: MonitoringSchema
     rate_limiting: Optional[RateLimitingSchema]
-    defer: DeferSchema
+    prioritization: PrioritizationSchema
     lua: LuaSchema
 
     def _hostname(self, obj: Raw) -> Any:
diff --git a/python/knot_resolver/datamodel/defer_schema.py b/python/knot_resolver/datamodel/defer_schema.py
deleted file mode 100644 (file)
index 81546a0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-from knot_resolver.datamodel.types import TimeUnit
-from knot_resolver.utils.modeling import ConfigSchema
-
-
-class DeferSchema(ConfigSchema):
-    """
-    Configuration of request prioritization (defer).
-
-    ---
-    enabled: Use request prioritization.
-    log_period: Minimal time between two log messages, or '0s' to disable.
-    """
-
-    enabled: bool = False
-    log_period: TimeUnit = TimeUnit("0s")
diff --git a/python/knot_resolver/datamodel/prioritization_schema.py b/python/knot_resolver/datamodel/prioritization_schema.py
new file mode 100644 (file)
index 0000000..74025b8
--- /dev/null
@@ -0,0 +1,15 @@
+from knot_resolver.datamodel.types import TimeUnit
+from knot_resolver.utils.modeling import ConfigSchema
+
+
+class PrioritizationSchema(ConfigSchema):
+    """
+    Configuration of request prioritization (defer).
+
+    ---
+    enabled: Enable/disable request prioritization.
+    logging_period: Minimal time between two log messages, or '0s' to disable.
+    """
+
+    enabled: bool = False
+    logging_period: TimeUnit = TimeUnit("0s")
diff --git a/python/knot_resolver/datamodel/templates/defer.lua.j2 b/python/knot_resolver/datamodel/templates/defer.lua.j2
deleted file mode 100644 (file)
index 5dacff7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{% from 'macros/common_macros.lua.j2' import boolean %}
-
-{% if cfg.defer.enabled and disable_defer is not defined -%}
-assert(C.defer_init(
-       '{{ cfg.rundir }}/defer',
-       {{ cfg.defer.log_period.millis() }},
-       {{ cfg.workers }}) == 0)
-{% else %}
-assert(C.defer_init(nil, 0, 0) == 0)
-{%- endif %}
index 14b862913e756bc9506d614cf7ebabdc32faff52..a312480235af77d67614b09b9c52113ebb1c08f6 100644 (file)
@@ -43,8 +43,8 @@ nsid.name('{{ cfg.nsid }}' .. worker.id)
 -- RATE-LIMITING section ------------------------------------
 {% include "rate_limiting.lua.j2" %}
 
--- DEFER section ------------------------------------
-{% include "defer.lua.j2" %}
+-- PRIORITIZATION section ------------------------------------
+{% include "prioritization.lua.j2" %}
 
 {% endif %}
 
index 0b99970339afd3dd7d810f31562dfd2c4ac1d748..5f8349e6978f600e4c8c04621ef320dcce9f417a 100644 (file)
@@ -35,10 +35,10 @@ cache.open({{ cfg.cache.size_max.bytes() }}, 'lmdb://{{ cfg.cache.storage }}')
 -- FORWARD section ----------------------------------
 {% include "forward.lua.j2" %}
 
--- DEFER section ------------------------------------
+-- PRIORITIZATION section ------------------------------------
 -- Force-disable defer to avoid the default defer config.
-{% set disable_defer = true %}
-{% include "defer.lua.j2" %}
+{% set disable_prioritization = true %}
+{% include "prioritization.lua.j2" %}
 
 {% endif %}
 
diff --git a/python/knot_resolver/datamodel/templates/prioritization.lua.j2 b/python/knot_resolver/datamodel/templates/prioritization.lua.j2
new file mode 100644 (file)
index 0000000..7c241e1
--- /dev/null
@@ -0,0 +1,13 @@
+{% if cfg.prioritization.enabled and disable_prioritization is not defined %}
+-- Enable and configure request prioritization (defer)
+assert(
+    C.defer_init(
+        '{{ cfg.rundir }}/defer',
+        {{ cfg.prioritization.logging_period.millis() }},
+        {{ cfg.workers }}
+    ) == 0
+)
+{% else %}
+-- Disable request prioritization (defer)
+assert(C.defer_init(nil, 0, 0) == 0)
+{% endif %}
index 4b5d04210b92ce2da74bca8993dea49962b5a9fe..065742dac1d5704604079952519c9ccd43a0ae35 100644 (file)
@@ -128,9 +128,9 @@ class KresManager:  # pylint: disable=too-many-instance-attributes
                 config.dns64,
                 config.logging,
                 config.monitoring,
-                config.lua,
                 config.rate_limiting,
-                config.defer,
+                config.prioritization,
+                config.lua,
             ]
 
         # register and immediately call a verifier that validates config with 'canary' kresd process
@@ -225,7 +225,7 @@ class KresManager:  # pylint: disable=too-many-instance-attributes
                     os.unlink(str(_old.rundir) + "/ratelimiting")
                 except FileNotFoundError:
                     pass
-            if _old.workers != new.workers or _old.defer != new.defer:
+            if _old.workers != new.workers or _old.prioritization != new.prioritization:
                 logger.debug("Unlinking shared defer memory")
                 try:
                     os.unlink(str(_old.rundir) + "/defer")