]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Revert "datamodel: renamed defer section to prioritization"
authorAleš Mrázek <ales.mrazek@nic.cz>
Tue, 6 May 2025 11:44:51 +0000 (13:44 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Tue, 5 Aug 2025 09:22:08 +0000 (11:22 +0200)
This reverts commit 1e3b02d056dc3785be3e398f2d23a41780c58677.

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

diff --git a/NEWS b/NEWS
index 9ea4cb91fed95045da2c01ffe0d60677ad4fb737..e8bd0cf8c72f506bea97b4086b13faa84aeac861 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -19,8 +19,6 @@ 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 9bed9abda2232c655c950ae80c5c91e3a1bf3f29..534eceee063f24a3fad748aa503815378c71558a 100644 (file)
                 "dry_run": false
             }
         },
-        "prioritization": {
+        "defer": {
             "description": "Configuration of request prioritization (defer).",
             "type": "object",
             "properties": {
                 "enabled": {
                     "type": "boolean",
-                    "description": "Enable/disable request prioritization.",
+                    "description": "Use request prioritization.",
                     "default": false
                 },
-                "logging-period": {
+                "log-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,
-                "logging_period": "0s"
+                "log_period": "0s"
             }
         },
         "lua": {
index 0f322bc7e39b6e0caebb4ceec76ebe40325db8ce..4855fdcc7357af8a0a1cc6c6169541e52d827791 100644 (file)
@@ -5,6 +5,7 @@ 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 ForwardSchema
@@ -16,7 +17,6 @@ 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 POLICY_CONFIG_TEMPLATE, WORKER_CONFIG_TEMPLATE
 from knot_resolver.datamodel.types import EscapedStr, IntPositive, WritableDir
@@ -106,7 +106,7 @@ class KresConfig(ConfigSchema):
         monitoring: Metrics exposisition configuration (Prometheus, Graphite)
         lua: Custom Lua configuration.
         rate_limiting: Configuration of rate limiting.
-        prioritization: Configuration of request prioritization (defer).
+        defer: Configuration of request prioritization (defer).
         """
 
         version: int = 1
@@ -126,7 +126,7 @@ class KresConfig(ConfigSchema):
         logging: LoggingSchema = LoggingSchema()
         monitoring: MonitoringSchema = MonitoringSchema()
         rate_limiting: RateLimitingSchema = RateLimitingSchema()
-        prioritization: PrioritizationSchema = PrioritizationSchema()
+        defer: DeferSchema = DeferSchema()
         lua: LuaSchema = LuaSchema()
 
     _LAYER = Raw
@@ -147,7 +147,7 @@ class KresConfig(ConfigSchema):
     logging: LoggingSchema
     monitoring: MonitoringSchema
     rate_limiting: RateLimitingSchema
-    prioritization: PrioritizationSchema
+    defer: DeferSchema
     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
new file mode 100644 (file)
index 0000000..81546a0
--- /dev/null
@@ -0,0 +1,15 @@
+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
deleted file mode 100644 (file)
index 74025b8..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-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
new file mode 100644 (file)
index 0000000..5dacff7
--- /dev/null
@@ -0,0 +1,10 @@
+{% 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 011e627fdb7ea810898e88a31cde27c7a05135f7..fbd824b38ec7012de19cc67b02566f0f57c13f86 100644 (file)
@@ -35,10 +35,10 @@ cache.open({{ cfg.cache.size_max.bytes() }}, 'lmdb://{{ cfg.cache.storage }}')
 -- FORWARD section ----------------------------------
 {% include "forward.lua.j2" %}
 
--- PRIORITIZATION section ------------------------------------
+-- DEFER section ------------------------------------
 -- Force-disable defer to avoid the default defer config.
-{% set disable_prioritization = true %}
-{% include "prioritization.lua.j2" %}
+{% set disable_defer = true %}
+{% include "defer.lua.j2" %}
 
 {% endif %}
 
diff --git a/python/knot_resolver/datamodel/templates/prioritization.lua.j2 b/python/knot_resolver/datamodel/templates/prioritization.lua.j2
deleted file mode 100644 (file)
index 7c241e1..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{% 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 a312480235af77d67614b09b9c52113ebb1c08f6..14b862913e756bc9506d614cf7ebabdc32faff52 100644 (file)
@@ -43,8 +43,8 @@ nsid.name('{{ cfg.nsid }}' .. worker.id)
 -- RATE-LIMITING section ------------------------------------
 {% include "rate_limiting.lua.j2" %}
 
--- PRIORITIZATION section ------------------------------------
-{% include "prioritization.lua.j2" %}
+-- DEFER section ------------------------------------
+{% include "defer.lua.j2" %}
 
 {% endif %}
 
index d1d103ea96e1f2bd75732433bb87c641bb4b11ce..ac6539c4272554a30c73692673116cdb83b3c3ee 100644 (file)
@@ -128,9 +128,9 @@ class KresManager:  # pylint: disable=too-many-instance-attributes
                 config.dns64,
                 config.logging,
                 config.monitoring,
-                config.rate_limiting,
-                config.prioritization,
                 config.lua,
+                config.rate_limiting,
+                config.defer,
             ]
 
         # 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.prioritization != new.prioritization:
+            if _old.workers != new.workers or _old.defer != new.defer:
                 logger.debug("Unlinking shared defer memory")
                 try:
                     os.unlink(str(_old.rundir) + "/defer")