Exemplo n.º 1
0
    def _step_tasklist(self, step_xml, tasklists_env, var_env={}):
        targets_def = step_xml.get("targets")
        if targets_def is None:
            logging.warn("step has no targets, skipping")
            return
        tasklist_name = step_xml.get("tasklist")
        if tasklist_name is None:
            logging.warn("step has no tasklist, skipping")
            return
        tasklist = tasklists_env.get(tasklist_name)
        if tasklist is None:
            raise ExperimentSyntaxError("Tasklist '%s' not found" % (tasklist_name,))
        background = False
        bg_str = step_xml.get('background')
        if bg_str is not None and bg_str.lower() == 'true':
            background = True
        delay = get_delay_attr(step_xml, 'start')
        stop = get_delay_attr(step_xml, 'stop')
        logging.info("delay for step with tl %s is %s", tasklist_name, delay)

        composedEnv = {}
        composedEnv.update(var_env)
        composedEnv.update(helper.exportEnv(step_xml))
        
        self.schedule_tasklist(targets_def, tasklist, tasklists_env, background, delay, composedEnv, stop)
Exemplo n.º 2
0
    def _step_teardown(self, step_xml, tasklists_env, var_env):
        targets_def = step_xml.get("targets")
        if targets_def is None:
            logging.warn("register-teardown has no targets, skipping")
            return
        tasklist_name = step_xml.get("tasklist")
        if tasklist_name is None:
            logging.warn("register-teardown has no tasklist, skipping")
            return
        tasklist = tasklists_env.get(tasklist_name)
        if tasklist is None:
            raise ExperimentSyntaxError("Tasklist '%s' not found" % (tasklist_name,))
        logging.info("Registering teardown for '%s' on '%s'", tasklist_name, targets_def)

        composedEnv = {}
        composedEnv.update(var_env)
        composedEnv.update(helper.exportEnv(step_xml))

        self.testbed.teardowns.append((targets_def, tasklist, composedEnv))
Exemplo n.º 3
0
 def __init__(self, node_xml, testbed):
     self.testbed = testbed
     self.name = node_xml.get('name')
     self._env = helper.exportEnv(node_xml)