]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: files: added files_reload callback
authorAleš Mrázek <ales.mrazek@nic.cz>
Fri, 27 Dec 2024 15:02:51 +0000 (16:02 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Tue, 14 Jan 2025 08:48:01 +0000 (09:48 +0100)
Now it will only reload the TLS cert files.

python/knot_resolver/manager/files/__init__.py
python/knot_resolver/manager/files/reload.py [new file with mode: 0644]

index 49700656ba1c32e68e0e6be69e17b8b3424b93af..29fbc74198f629edbd1d3ce62a6e23e6fc6ccf9a 100644 (file)
@@ -1,3 +1,4 @@
+from .reload import files_reload
 from .watchdog import init_files_watchdog
 
-__all__ = ["init_files_watchdog"]
+__all__ = ["files_reload", "init_files_watchdog"]
diff --git a/python/knot_resolver/manager/files/reload.py b/python/knot_resolver/manager/files/reload.py
new file mode 100644 (file)
index 0000000..6dfd587
--- /dev/null
@@ -0,0 +1,17 @@
+import logging
+
+from knot_resolver.controller.registered_workers import command_registered_workers
+from knot_resolver.datamodel import KresConfig
+
+logger = logging.getLogger(__name__)
+
+
+async def files_reload(config: KresConfig) -> None:
+    cert_file = config.network.tls.cert_file
+    key_file = config.network.tls.key_file
+
+    if cert_file and key_file:
+        logger.info("TLS cert files reload triggered")
+
+        cmd = f"net.tls('{cert_file}', '{key_file}')"
+        await command_registered_workers(cmd)