]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
config: server: private attribute for the number of instances
authorAleš <ales.mrazek@nic.cz>
Thu, 15 Apr 2021 14:47:58 +0000 (16:47 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 8 Apr 2022 14:17:52 +0000 (16:17 +0200)
The value of the attribute is determined indirectly from
loaded configuration or based on the number of system's CPUs.

manager/knot_resolver_manager/datamodel/server_config.py
manager/knot_resolver_manager/kres_manager.py

index 71b1baa0b8190305a60271dd6088a9d87262010a..e8dcc49150772818e675193109cc8a944ca43e76 100644 (file)
@@ -12,21 +12,24 @@ from .errors import DataValidationError
 @dataclass
 class ServerConfig(DataclassParserValidatorMixin):
     hostname: Optional[str] = None
-    instances: Union[Literal["auto"], int] = 1
-    instances_num: int = 1
+    instances: Union[Literal["auto"], int, None] = None
+    _instances: int = 1
     use_cache_gc: bool = True
 
     def __post_init__(self):
         if isinstance(self.instances, int):
-            self.instances_num = self.instances
+            self._instances = self.instances
         elif self.instances == "auto":
             cpu_count = os.cpu_count()
             if cpu_count is not None:
-                self.instances_num = cpu_count
+                self._instances = cpu_count
             else:
                 # TODO: do better logging
-                print("cannot get number of CPUs")
+                print("cannot find number of system available CPUs")
+
+    def get_instances(self) -> int:
+        return self._instances
 
     def _validate(self):
-        if not 0 < self.instances_num <= 256:
+        if not 0 < self._instances <= 256:
             raise DataValidationError("number of kresd instances must be in range 1..256")
index ee98648e4ab333543bdb72c73cf62746778e69a1..86c088e1ca3d9d65e8bbe80a5fd290c03c5ba368 100644 (file)
@@ -72,5 +72,5 @@ class KresManager:
     async def apply_config(self, config: KresConfig):
         async with self._children_lock:
             await self._write_config(config)
-            await self._ensure_number_of_children(config.server.instances_num)
+            await self._ensure_number_of_children(config.server.get_instances())
             await self._rolling_restart()