@@ -257,21 +257,26 @@ def to_json(self):
257
257
"""Serialize a Cluster object for later reconstruction"""
258
258
raise NotImplementedError ()
259
259
260
- async def start_controller (self ):
261
- """Start the controller"""
260
+ async def start_controller (self , ** kwargs ):
261
+ """Start the controller
262
+
263
+ Keyword arguments are passed to the controller launcher constructor
264
+ """
262
265
# start controller
263
266
# retrieve connection info
264
267
# webhook?
265
268
if self ._controller is not None :
266
269
raise RuntimeError (
267
270
"controller is already running. Call stop_controller() first."
268
271
)
272
+
269
273
self ._controller = controller = self .controller_launcher_class (
270
274
work_dir = u'.' ,
271
275
parent = self ,
272
276
log = self .log ,
273
277
profile_dir = self .profile_dir ,
274
278
cluster_id = self .cluster_id ,
279
+ ** kwargs ,
275
280
)
276
281
277
282
controller_args = getattr (controller , 'controller_args' , None )
@@ -305,7 +310,7 @@ def _controller_stopped(self, stop_data=None):
305
310
"""Callback when a controller stops"""
306
311
self .log .info (f"Controller stopped: { stop_data } " )
307
312
308
- async def start_engines (self , n = None , engine_set_id = None ):
313
+ async def start_engines (self , n = None , engine_set_id = None , ** kwargs ):
309
314
"""Start an engine set
310
315
311
316
Returns an engine set id which can be used in stop_engines
@@ -319,6 +324,7 @@ async def start_engines(self, n=None, engine_set_id=None):
319
324
log = self .log ,
320
325
profile_dir = self .profile_dir ,
321
326
cluster_id = self .cluster_id ,
327
+ ** kwargs ,
322
328
)
323
329
if n is None :
324
330
n = self .n
0 commit comments