def runCommandOnAllRemotes(self, command): remote_instance_list = [] # use remote _env_runner args = path.join(self._remote_workspace_dir, 'gumby', self._env_runner) + " " + command for host in self._cfg['head_nodes']: msg("Executing command in %s: %s" % (host, args)) remote_instance_list.append(runRemoteCMD(host, args)) return gatherResults(remote_instance_list, consumeErrors=True)
def spawnConfigServer(self): def onConfServerFailure(failure): err("Config server died, stopping experiment.") return failure cmd = self._cfg['config_server_cmd'] if self._cfg.as_bool("tracker_run_local"): msg("Spawning local config server with:", cmd) pp = OneShotProcessProtocol() args = cmd.split(' ', 1) reactor.spawnProcess(pp, args[0], args, env=None) # Inherit env from parent d = pp.getDeferred() else: msg("Spawning config server on head node with:", cmd) final_cmd = path.join(self._remote_workspace_dir, cmd) host = self._cfg['head_nodes'][0] d = runRemoteCMD(host, final_cmd) d.addErrback(onConfServerFailure)
def spawnTracker(self): def onTrackerFailure(failure): err("Tracked died, stopping experiment.") return failure cmd = self._cfg['tracker_cmd'] if cmd: if self._cfg.as_bool("tracker_run_local"): msg("Spawning local tracker with:", cmd) pp = OneShotProcessProtocol() args = cmd.split(' ', 1) reactor.spawnProcess(pp, args[0], args) d = pp.getDeferred() else: msg("Spawning remote tracker on head node with:", cmd) final_cmd = path.join(self._remote_workspace_dir, cmd) host = self._cfg['head_nodes'][0] d = runRemoteCMD(host, final_cmd) d.addErrback(onTrackerFailure)