From: Aleš Mrázek Date: Mon, 7 Apr 2025 13:47:17 +0000 (+0200) Subject: manager: server: deny dynamic changes off /cache/garbage-collector/* config X-Git-Tag: v6.0.17~9^2~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ddc382756e8ca310f7100412f26139bd5e9ccd5e;p=thirdparty%2Fknot-resolver.git manager: server: deny dynamic changes off /cache/garbage-collector/* config --- diff --git a/python/knot_resolver/manager/server.py b/python/knot_resolver/manager/server.py index d99b411c5..509f8996a 100644 --- a/python/knot_resolver/manager/server.py +++ b/python/knot_resolver/manager/server.py @@ -118,6 +118,16 @@ class Server: ) return Result.ok(None) + async def _deny_cache_garbage_collector_changes( + self, config_old: KresConfig, config_new: KresConfig, _force: bool = False + ) -> Result[None, str]: + if config_old.cache.garbage_collector != config_new.cache.garbage_collector: + return Result.err( + "/cache/garbage-collector/*: Changing configuration dynamically is not allowed." + " To change this configuration, you must edit the configuration file and restart the entire resolver." + ) + return Result.ok(None) + async def _reload_config(self, force: bool = False) -> None: if self._config_path is None: logger.warning("The manager was started with inlined configuration - can't reload") @@ -184,6 +194,7 @@ class Server: self._setup_routes() await self.runner.setup() await self.config_store.register_verifier(self._deny_management_changes) + await self.config_store.register_verifier(self._deny_cache_garbage_collector_changes) await self.config_store.register_on_change_callback(self._reconfigure) async def wait_for_shutdown(self) -> None: