]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
python/knot_resolver: exec controller during resolver startup
authorAleš Mrázek <ales.mrazek@nic.cz>
Fri, 24 Jul 2026 13:29:37 +0000 (15:29 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 24 Jul 2026 22:56:20 +0000 (00:56 +0200)
python/knot_resolver/resolver.py

index d6dba1720164a26f5295c619c116153168b4609b..d9d528b3dc254c6a3bcfec03ebcae0a5ee6ec266 100644 (file)
@@ -1,10 +1,14 @@
 from __future__ import annotations
 
 import os
+import sys
 from pathlib import Path
 from typing import TYPE_CHECKING
 
+from .config import KresConfig
 from .constants import RUN_DIR
+from .controller import SupervisordController
+from .controller.errors import ControllerError
 from .logging import get_logger
 
 if TYPE_CHECKING:
@@ -21,9 +25,18 @@ def start_resolver(args: KresArgs) -> None:
     _config_paths = [Path(file).absolute() for file in args.config]
 
     # TODO(amrazek): load/parse/validate configuration here
+    config = KresConfig()
 
     # TODO(amrazek): set logging level, target, ...
 
     # TODO(amrazek): use 'rundir' from configuration
     logger.debug("Changing working directory to '%s'", RUN_DIR)
     os.chdir(RUN_DIR)
+
+    try:
+        controller = SupervisordController(args, config)
+        controller.write_config()
+        controller.exec()
+    except ControllerError as e:
+        logger.critical(e)
+        sys.exit(1)