Example #1
0
def create_experiment_suite(xml, access_config, repetitions = None,
        duration = None, wait_guids = None):
    mode = None
    if access_config :
        (mode, launch, root_dir, log_level, communication, user, host, port, 
                key, agent, sudo, environment_setup, clean_root) \
                        = get_access_config_params(access_config)

    if not mode or mode == DC.MODE_SINGLE_PROCESS:
        from nepi.core.execute import ExperimentSuite
        if not root_dir:
            root_dir = TempDir()
        else:
            root_dir = PermDir(access_config.get_attribute_value(DC.ROOT_DIRECTORY))

        exp_suite = ExperimentSuite(xml, access_config, repetitions, duration,
                wait_guids)
        
        # inject reference to temporary dir, so that it gets cleaned
        # up at destruction time.
        exp_suite._tempdir = root_dir
        return exp_suite
    elif mode == DC.MODE_DAEMON:
        return ExperimentSuiteProxy(root_dir, log_level,
                xml,
                repetitions = repetitions, 
                duration = duration,
                wait_guids = wait_guids, 
                communication = communication,
                host = host, 
                port = port, 
                user = user, 
                ident_key = key,
                agent = agent, 
                sudo = sudo, 
                environment_setup = environment_setup, 
                clean_root = clean_root)
    raise RuntimeError("Unsupported access configuration '%s'" % mode)