From: Aleš Mrázek Date: Tue, 6 May 2025 11:44:51 +0000 (+0200) Subject: Revert "datamodel: renamed defer section to prioritization" X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb1a5a121ce688357044af75b80f99f58099016e;p=thirdparty%2Fknot-resolver.git Revert "datamodel: renamed defer section to prioritization" This reverts commit 1e3b02d056dc3785be3e398f2d23a41780c58677. --- diff --git a/NEWS b/NEWS index 9ea4cb91f..e8bd0cf8c 100644 --- 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 diff --git a/doc/_static/config.schema.json b/doc/_static/config.schema.json index 9bed9abda..534eceee0 100644 --- a/doc/_static/config.schema.json +++ b/doc/_static/config.schema.json @@ -1639,16 +1639,16 @@ "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.", @@ -1657,7 +1657,7 @@ }, "default": { "enabled": false, - "logging_period": "0s" + "log_period": "0s" } }, "lua": { diff --git a/python/knot_resolver/datamodel/config_schema.py b/python/knot_resolver/datamodel/config_schema.py index 0f322bc7e..4855fdcc7 100644 --- a/python/knot_resolver/datamodel/config_schema.py +++ b/python/knot_resolver/datamodel/config_schema.py @@ -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 index 000000000..81546a075 --- /dev/null +++ b/python/knot_resolver/datamodel/defer_schema.py @@ -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 index 74025b8d9..000000000 --- a/python/knot_resolver/datamodel/prioritization_schema.py +++ /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 index 000000000..5dacff75f --- /dev/null +++ b/python/knot_resolver/datamodel/templates/defer.lua.j2 @@ -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 %} diff --git a/python/knot_resolver/datamodel/templates/policy-config.lua.j2 b/python/knot_resolver/datamodel/templates/policy-config.lua.j2 index 011e627fd..fbd824b38 100644 --- a/python/knot_resolver/datamodel/templates/policy-config.lua.j2 +++ b/python/knot_resolver/datamodel/templates/policy-config.lua.j2 @@ -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 index 7c241e14f..000000000 --- a/python/knot_resolver/datamodel/templates/prioritization.lua.j2 +++ /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 %} diff --git a/python/knot_resolver/datamodel/templates/worker-config.lua.j2 b/python/knot_resolver/datamodel/templates/worker-config.lua.j2 index a31248023..14b862913 100644 --- a/python/knot_resolver/datamodel/templates/worker-config.lua.j2 +++ b/python/knot_resolver/datamodel/templates/worker-config.lua.j2 @@ -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 %} diff --git a/python/knot_resolver/manager/manager.py b/python/knot_resolver/manager/manager.py index d1d103ea9..ac6539c42 100644 --- a/python/knot_resolver/manager/manager.py +++ b/python/knot_resolver/manager/manager.py @@ -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")