def add_instance(self, name, config): instance = dict(config) if name in self.instances: raise RuntimeError("Duplicate runner name: '%s' " "(probably unsupported duplicate " "parameters or hosts)" % name) if 'delay' not in instance: instance['delay'] = 0 idx = self.runner_counter self.runner_counter += 1 instance['idx'] = idx if idx in self.settings.REMOTE_HOSTS: instance['remote_host'] = self.settings.REMOTE_HOSTS[idx] else: instance['remote_host'] = None instance['runner'] = runners.get(instance['runner']) instance['start_event'] = None instance['kill_event'] = None instance['finish_event'] = Event() if 'data_transform' in config: instance['transformers'] = [] for t in [i.strip() for i in config['data_transform'].split(',')]: if hasattr(transformers, t): instance['transformers'].append(getattr(transformers, t)) self.instances[name] = instance
def add_instance(self, name, config): instance = dict(config) if name in self.instances: raise RuntimeError("Duplicate runner name: '%s' " "(probably unsupported duplicate " "parameters or hosts)" % name) if 'delay' not in instance: instance['delay'] = 0 idx = self.runner_counter self.runner_counter += 1 instance['idx'] = idx if idx in self.settings.REMOTE_HOSTS: instance['remote_host'] = self.settings.REMOTE_HOSTS[idx] elif '*' in self.settings.REMOTE_HOSTS: instance['remote_host'] = self.settings.REMOTE_HOSTS['*'] else: instance['remote_host'] = None instance['runner'] = runners.get(instance['runner']) instance['start_event'] = None instance['kill_event'] = None instance['finish_event'] = Event() self.instances[name] = instance
def add_instance(self, name, config): instance = dict(config) if name in self.instances: raise RuntimeError("Duplicate runner name: '%s' " "(probably unsupported duplicate " "parameters or hosts)" % name) if 'delay' not in instance: instance['delay'] = 0 idx = self.runner_counter self.runner_counter += 1 instance['idx'] = idx if idx in self.settings.REMOTE_HOSTS: instance['remote_host'] = self.settings.REMOTE_HOSTS[idx] else: instance['remote_host'] = None instance['runner'] = runners.get(instance['runner']) instance['start_event'] = None instance['kill_event'] = None instance['finish_event'] = Event() self.instances[name] = instance
def new_runner(self, name): r = runners.get(name) return r(name='test', settings=object(), command='test', delay=0, remote_host=None)
def create_watchdog(self, name, instance): watchdog = runners.get('timer')("Timeout watchdog for '%s'" % name, None, start_event=instance['start_event'], kill_event=instance['kill_event'], finish_event=Event(), timeout=instance['kill_timeout']) instance['kill_event'] = watchdog.finish_event return watchdog
def new_runner(self, name): r = runners.get(name) return r(name='test', settings=object(), command='test', delay=0, remote_host=None, interface=None, interval=0, length=0)
def compute_missing_results(self, results): for dname, dvals in self.DATA_SETS.items(): if not dname in results: runner = runners.get(dvals['runner']) if hasattr(runner, 'result') and isinstance(runner.result, collections.Callable): try: runner = runner(dname, settings, **dvals) runner.result(results) except Exception as e: sys.stderr.write("Unable to compute missing data series '%s': '%s'.\n" % (dname, e)) raise
def compute_missing_results(self, results): for dname, dvals in self.DATA_SETS.items(): if not dname in results: runner = runners.get(dvals['runner']) if hasattr(runner, 'result') and isinstance( runner.result, collections.Callable): try: runner = runner(dname, settings, **dvals) runner.result(results) except Exception as e: sys.stderr.write( "Unable to compute missing data series '%s': '%s'.\n" % (dname, e)) raise
def compute_missing_results(self, results): if "FROM_COMBINER" in results.meta(): return for dname, dvals in self.DATA_SETS.items(): if dname not in results: runner = runners.get(dvals['runner']) if issubclass(runner, runners.ComputingRunner): try: runner = runner(name=dname, settings=self, post=True, **dvals) runner.result(results) except Exception as e: sys.stderr.write("Unable to compute missing data " "series '%s': '%s'.\n" % (dname, e)) raise
def compute_missing_results(self, results): if "FROM_COMBINER" in results.meta(): return for dname, dvals in self.DATA_SETS.items(): if dname not in results: runner = runners.get(dvals['runner']) if issubclass(runner, runners.ComputingRunner): logger.debug("Computing missing data series %s", dname) try: runner = runner(name=dname, settings=self, post=True, **dvals) runner.compute_result(results) except Exception as e: logger.exception("Unable to compute missing data " "series '%s': '%s'.", dname, e) raise
def add_instance(self, name, config): instance = dict(config) if not 'delay' in instance: instance['delay'] = 0 instance['runner'] = runners.get(instance['runner']) instance['start_event'] = None instance['kill_event'] = None instance['finish_event'] = Event() if 'data_transform' in config: instance['transformers'] = [] for t in [i.strip() for i in config['data_transform'].split(',')]: if hasattr(transformers, t): instance['transformers'].append(getattr(transformers, t)) self.instances[name] = instance