Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #5
0
 def new_runner(self, name):
     r = runners.get(name)
     return r(name='test',
              settings=object(),
              command='test',
              delay=0,
              remote_host=None)
Exemple #6
0
 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
Exemple #7
0
 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
Exemple #8
0
 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)
Exemple #9
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
Exemple #10
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
Exemple #11
0
 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
Exemple #12
0
 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
Exemple #13
0
 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
Exemple #14
0
    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
Exemple #15
0
 def new_runner(self, name):
     r = runners.get(name)
     return r(name='test', settings=object(), command='test',
              delay=0, remote_host=None)