def create_manifest(working_dir, program_path, manifest_cfg, tar_files,
                    limits_cfg):
    manifest = Manifest.default_manifest(working_dir, program_path)
    manifest.node = manifest_cfg['Node']
    manifest.version = manifest_cfg['Version']
    manifest.timeout = manifest_cfg['Timeout']
    manifest.memory = manifest_cfg['Memory']

    for i, tar_file in enumerate(tar_files, start=1):
        mount_point = '/dev/%s.%s' % (i, path.basename(tar_file))

        ch = Channel(
            tar_file, mount_point, access_type=RND_READ_RND_WRITE,
            gets=limits_cfg['reads'],
            get_size=limits_cfg['rbytes'],
            puts=limits_cfg['writes'],
            put_size=limits_cfg['wbytes'],
        )
        manifest.channels.append(ch)

    return manifest
updateController(controller: VistrailController) -> None
dataset/ETHPy150Open zerovm/zerovm-cli/zvshlib/zvsh.py/create_manifest--crossover with--dataset/ETHPy150Open VisTrails/VisTrails/vistrails/gui/version_prop.py/QVersionProp.updateController