master/worker: pause/resume devices

This commit is contained in:
Sebastien Bourdeauducq 2016-04-12 15:45:53 +08:00
parent 3c70bc40a4
commit 437b37b158

View File

@ -76,12 +76,19 @@ set_watchdog_factory(Watchdog)
class Scheduler:
def __init__(self, device_mgr):
self.device_mgr = device_mgr
pause_noexc = staticmethod(make_parent_action("pause"))
@host_only
def pause(self):
if self.pause_noexc():
raise TerminationRequested
self.device_mgr.pause_devices()
try:
if self.pause_noexc():
raise TerminationRequested
finally:
self.device_mgr.resume_devices()
submit = staticmethod(make_parent_action("scheduler_submit"))
delete = staticmethod(make_parent_action("scheduler_delete"))
@ -179,8 +186,8 @@ def main():
exp_inst = None
repository_path = None
device_mgr = DeviceManager(ParentDeviceDB,
virtual_devices={"scheduler": Scheduler()})
device_mgr = DeviceManager(ParentDeviceDB)
device_mgr.virtual_devices["scheduler"] = Scheduler(device_mgr)
dataset_mgr = DatasetManager(ParentDatasetDB)
try: