def generate_tasks()

in src/hpcadvisor/taskset_handler.py [0:0]


def generate_tasks(filename, var_system, var_appinputs, appname, tags, appsetupurl):
    clear_task_file(filename)

    main_task_dict = []
    variables = []
    for varname, value in var_system.items():
        variables.append((varname, value))

    for varname, value in var_appinputs.items():
        variables.append((varname, value))

    variables = [(name, _ensure_list(values)) for name, values in variables]

    parameter_combinations = list(
        itertools.product(*[values for _, values in variables])
    )

    id = 0
    for task in parameter_combinations:
        task_dict = {
            name: value for name, value in zip([name for name, _ in variables], task)
        }

        task_dict_entry = {}
        task_dict_entry["id"] = id
        task_dict_entry["sku"] = task_dict["sku"]
        task_dict_entry["ppr"] = task_dict["ppr"]
        task_dict_entry["nnodes"] = task_dict["nnodes"]
        task_dict_entry["appinputs"] = {}
        for varname, _ in var_appinputs.items():
            task_dict_entry["appinputs"][varname] = task_dict[varname]
        task_dict_entry["status"] = TaskStatus.PENDING
        task_dict_entry["appname"] = appname
        task_dict_entry["tags"] = tags
        task_dict_entry["appsetupurl"] = appsetupurl
        task_dict_entry["apprunscript"] = utils.get_app_execution_script(appsetupurl)
        main_task_dict.append(task_dict_entry)
        id += 1

    _store_tasks(main_task_dict, filename)
    return main_task_dict