3824: Merge branch 'master' into 3824-docker-fixes
[arvados.git] / services / nodemanager / arvnodeman / config.py
index 1699584b200e99ab249ae6f15d63e6888325890e..079e623c559e477ec37b0435a60f3574cdbefacb 100644 (file)
@@ -37,7 +37,8 @@ class NodeManagerConfig(ConfigParser.SafeConfigParser):
         for sec_name, settings in {
             'Arvados': {'insecure': 'no',
                         'timeout': '15'},
-            'Daemon': {'max_nodes': '1',
+            'Daemon': {'min_nodes': '0',
+                       'max_nodes': '1',
                        'poll_time': '60',
                        'max_poll_time': '300',
                        'poll_stale_after': '600',
@@ -67,6 +68,17 @@ class NodeManagerConfig(ConfigParser.SafeConfigParser):
                 for key in self.options('Logging')
                 if key not in self.LOGGING_NONLEVELS}
 
+    def dispatch_classes(self):
+        mod_name = 'arvnodeman.computenode.dispatch'
+        if self.has_option('Daemon', 'dispatcher'):
+            mod_name = '{}.{}'.format(mod_name,
+                                      self.get('Daemon', 'dispatcher'))
+        module = importlib.import_module(mod_name)
+        return (module.ComputeNodeSetupActor,
+                module.ComputeNodeShutdownActor,
+                module.ComputeNodeUpdateActor,
+                module.ComputeNodeMonitorActor)
+
     def new_arvados_client(self):
         if self.has_option('Daemon', 'certs_file'):
             certs_file = self.get('Daemon', 'certs_file')
@@ -84,7 +96,7 @@ class NodeManagerConfig(ConfigParser.SafeConfigParser):
                            http=http)
 
     def new_cloud_client(self):
-        module = importlib.import_module('arvnodeman.computenode.' +
+        module = importlib.import_module('arvnodeman.computenode.driver.' +
                                          self.get('Cloud', 'provider'))
         auth_kwargs = self.get_section('Cloud Credentials')
         if 'timeout' in auth_kwargs: