diff options
-rw-r--r-- | distbuild/build_controller.py | 3 | ||||
-rw-r--r-- | distbuild/mainloop.py | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/distbuild/build_controller.py b/distbuild/build_controller.py index cfa0e2e2..8dbbaef9 100644 --- a/distbuild/build_controller.py +++ b/distbuild/build_controller.py @@ -246,6 +246,9 @@ class BuildController(distbuild.StateMachine): def _request_command_execution(self, argv, request_id): '''Tell the controller's distbuild-helper to run a command.''' + if self.mainloop.n_state_machines_of_type(distbuild.HelperRouter) == 0: + self.fail('No distbuild-helper process running on controller!') + msg = distbuild.message('exec-request', id=request_id, argv=argv, diff --git a/distbuild/mainloop.py b/distbuild/mainloop.py index f0e5eebc..8c46b2fb 100644 --- a/distbuild/mainloop.py +++ b/distbuild/mainloop.py @@ -56,7 +56,10 @@ class MainLoop(object): def remove_state_machine(self, machine): logging.debug('MainLoop.remove_state_machine: %s' % machine) self._machines.remove(machine) - + + def n_state_machines_of_type(self, machine_type): + return len([m for m in self._machines if isinstance(m, machine_type)]) + def add_event_source(self, event_source): logging.debug('MainLoop.add_event_source: %s' % event_source) self._sources.append(event_source) |