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)
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))
def __init__(self, node_xml, testbed): self.testbed = testbed self.name = node_xml.get('name') self._env = helper.exportEnv(node_xml)