为Galaxy(http://galaxyproject.org/)构建的分布式作业执行应用。
项目描述
本项目是一个Python服务器应用程序,允许Galaxy服务器在远程系统(包括Windows)上运行作业,而不需要共享挂载的文件系统。与传统的Galaxy作业运行器不同——输入文件、脚本和配置文件可以传输到远程系统,执行作业,并将结果传输回Galaxy服务器——从而消除了对共享文件系统的需求。
项目的完整文档可以在Read The Docs上找到。
配置Galaxy
Galaxy作业运行器在Galaxy的job_conf.xml文件中进行配置。一些配置示例可以在这里找到,但请务必检查您Galaxy代码库中的job_conf.xml.sample_advanced或Github上的完整信息。
快速入门
有关安装Pulsar的不同方法的详细信息可以在文档的安装部分中找到,但如果您的机器有适当的Python依赖项,可以快速下载并使用以下命令运行测试作业
$ mkdir pulsar $ cd pulsar $ python3 -m venv venv $ . venv/bin/activate # venv\Scripts\activate.bat on Windows $ pip install 'pulsar-app[web]' $ pulsar-config $ pulsar --daemon # just `pulsar` on Windows $ pulsar-check # runs a test job
请注意,从0.14.0版本开始,Pulsar不再支持任何Python 2版本。最低支持的Python版本是3.5。
配置文档中有许多关于保护您的Pulsar服务器以及启用集群集成和消息队列通信等高级功能的详细信息。
开发和测试
在Linux或macOS上设置Pulsar开发环境的推荐方法大致如下
$ git clone https://github.com/galaxyproject/pulsar $ cd pulsar $ python3 -m venv .venv $ . .venv/bin/activate # .venv\Scripts\activate on Windows $ pip install -e '.[web]' $ pip install -r dev-requirements.txt
-e标志为pip安装Pulsar在“可编辑”模式下,这意味着您对源代码所做的更改将在运行虚拟环境中安装的pulsar命令时反映出来。
该项目附带单元和集成测试(其中许多在Windows下无法运行),以下命令将安装运行这些测试所需的Python组件。然后以下命令将运行这些测试
$ make tests
以下命令将生成与该测试相对应的覆盖率报告,并将其放置在本项目的coverage_html_report子目录中。
$ coverage html
请参阅贡献文档,以获取更多有关开发和贡献Pulsar的详细信息。
请注意,该项目以贡献者行为准则发布。通过参与此项目,您同意遵守其条款。
支持
本文档是一个正在进行的未完成作品。有更多配置和使用Pulsar的方法,比文档中记录的要多,还有越来越多的Pulsar专家愿意回答您的问题并帮助您解决在设置Pulsar部署过程中可能遇到的问题。请随时通过Galaxy管理员Gitter频道联系。
历史记录
0.15.6 (2024-01-15)
允许将tus上传到Galaxy。拉取请求351
0.15.5 (2023-09-15)
0.15.4 (2023-08-29)
增加显式TimeoutError异常捕获(感谢 @mvdbeek)。Pull Request 337
更新galaxy-job-metrics需求(感谢 @cat-bro)。Pull Request 334
0.15.3 (2023-07-20)
修复在ConnectionResetError后Pulsar消费者状态的问题。Pull Request 331
用户认证插件(感谢 @SergeyYakubov)。Pull Request 321
0.15.2 (2023-05-02)
修复Pulsar和Pulsar客户端重新连接到AMQP服务器的问题。Pull Request 324
减少超时异常捕获的冗余信息。Pull Request 325
0.15.1 (2023-04-13)
没有变化,正在绕过pypi问题。
0.15.0 (2023-04-13)
更新Galaxy+Pulsar容器。Pull Request 306
重构容器执行 - 将Kubernetes执行泛化以使其在没有消息队列的情况下工作,并允许基于pydantic-tes(https://github.com/jmchilton/pydantic-tes)的TES执行。Pull Request 302
为容器执行场景添加文档和图表。Pull Request 302
重构集成测试以更积极地使用pytest。
修复CI,以运行更多未执行的测试,因为这些测试因为Tox没有将环境变量传递给pytest而未执行。
添加amqp_key_prefix选项以直接指定任务队列命名,同时保留容器调度部署中的简单默认管理器名称等。Pull Request 315
各种类型和CI修复。Pull Request 312,Pull Request 319
修复处理extra_file的问题。Pull Request 318
分别处理tool_stdio和job_stdio。Pull Request 318
从Galaxy重新导入MEMORY_STATEMENT.sh。Pull Request 297
添加对Sentry日志记录的支持。Pull Request 322
0.14.16 (2022-10-04)
修复与客户端操作映射构建URL相关的微小回归问题。
0.14.15 (2022-10-03)
修复0.14.14中的微小回归错误 - 更新runner util代码的交换比看起来更大。
0.14.14 (2022-10-30)
引入更新的Galaxy runner util代码。Pull Request 303
修复在启动/恢复时作业目录不存在的情况下的“丢失”作业(感谢 @natefoo)。Pull Request 301
使用urlencode对路径进行编码(感谢 @mvdbeek)。Pull Request 299
支持Galaxy Kubernetes runner中的k8s_job_ttl_secs_after_finished选项(感谢 @natefoo)。Pull Request 287
0.14.13 (2021-12-06)
不要将所有环境变量传递给由Manager启动的作业(感谢 @nsoranzo)。Pull Request 295
删除Galaxy框架测试中的旧版作业配置,针对metadata_strategy: extended进行测试(感谢 @mvdbeek)。Pull Request 294
0.14.12 (2021-11-10)
对将HOME和临时目录处理与Galaxy原生运行器更接近的修复。
启用远程元数据的globbed from_work_dir输出。
0.14.11 (2021-07-19)
修复和测试在特定情况下处理returncode。 Pull Request 274
更新tox。 Pull Request 271
0.14.10 (2021-07-17)
如果缺少注解的galaxy.json,则不要出错。 Pull Request 270
0.14.9 (2021-07-16)
实现动态文件源抽象,用于从
galaxy.json
文件解析文件传输。 Pull Request 269仅使用工具类来测试远程Galaxy工具。 Pull Request 266
针对Galaxy的dev和master分支运行Galaxy框架测试(感谢@mvdbeek)。 Pull Request 264
0.14.8 (2021-07-14)
修复Galaxy复合输入引用。 Pull Request 262
针对此存储库的pulsar运行galaxy的工具框架测试(感谢@mvdbeek)。 Pull Request 259
0.14.7 (2021-07-13)
接受从Galaxy传输工具文件的描述。 Pull Request 261
支持在from_work_dir输出中使用glob(感谢@natefoo)。 Pull Request 257
修复加载Galaxy依赖关系解析器配置,以及额外的配置目录修复(感谢@natefoo)。 Pull Request 256
0.14.6 (2021-05-24)
修复新Galaxy工具配置文件具有独立主目录的问题。
0.14.5 (2021-04-15)
通过作业目标参数设置文件操作的潜在修复。
0.14.4 (2021-04-14)
重新尝试发布过程 - 发布了错误的分支0.14.3。
0.14.3 (2021-04-13)
当使用Galaxy的扩展元数据时,允许从Pulsar传输更少的文件。
0.14.2 (2021-02-15)
修复使用coexecution pods的requests、limits和walltime的使用。 Pull Request 246
0.14.1 (2021-02-02)
修复使用coexecution pods的命名管理器的使用。 Pull Request 242
0.14.0 (2020-09-17)
修复PyYAML“load()弃用”警告(感谢@gmauro)。 Pull Request 232
将DRMAA workingDirectory设置为作业的工作目录 Pull Request 230
修复一个unicode问题并稍微润色了一些变量(感谢@gmauro)。 Pull Request 229
响应对MQ消息请求状态更新的请求。 Pull Request 228
修复使用标准传输时Py3破坏的REST连接 Issue 227 Pull Request 231
在标准传输中停止支持Python 2.7,停止Python 2.7测试并修复Python 3.7 wheel安装测试,通用测试调试增强。 Pull Request 231
停止支持python 2.6并添加3.7,更新测试基础设施到更近的Ubuntu配置(感谢@bgruening)。 Pull Request 226
在Python 3.9兼容性方面使用is_alive而不是isAlive(感谢@tirkarthi)。 Issue 224 Pull Request 225
当使用Kubernetes时,请求和注册Galaxy IT的端口。 Pull Request 223
实现k8s作业的终止。 Pull Request 221
响应对MQ消息请求状态更新的请求。 Pull Request 228
停止支持python 2.6并添加3.7,更新测试基础设施到更近的Ubuntu配置(感谢@bgruening)。 Pull Request 226
在解析外部ID时添加更详细的错误信息(感谢 @gmauro)。Pull Request 213
使用requests(感谢 @mvdbeek)。Pull Request 216
为了Python 3.9兼容性,使用is_alive代替isAlive(感谢 @tirkarthi)。Pull Request 225
调试AMQP的连接字符串。Pull Request 217
各种小型的Kubernetes修复和增强。Pull Request 218,Pull Request 219
改进和修复容器处理。Pull Request 202
感谢@erasche修复异常日志中的错误。Pull Request 203
通过删除可能不再受支持的旧Pulsar服务器的分支来稍微清理配置文件处理。Pull Request 201
0.13.1 (2020-09-16)
锁定所有列出的需求。这是支持Python 2的Pulsar的最终版本。
0.13.0 (2019-06-25)
对Kubernetes作业执行进行各种改进和简化。
0.12.1 (2019-06-03)
重试未包含所有相关提交的失败的发布。
0.12.0 (2019-06-03)
修改Python Galaxy依赖项以使用新的Galaxy分解风格。由于galaxy-lib不能在Pulsar环境中安装,因此您可能需要为这次发布重新构建Pulsar虚拟env。Pull Request 187
为Pulsar添加带有CVMFS的Dockerfile(感谢 @nuwang 和 @afgane)。Pull Request 166
对Kubernetes pod执行环境进行各种小改进。Pull Request 190
改进readme代码审查。Pull Request 186
更新Condor示例文档(感谢 @bgruening)。Pull Request 189
0.11.0 (2019-05-16)
在客户端实现Galaxy元数据输入文件的阶段。39de377
在示例中修复‘amqp_ack_republish_time’(感谢 @dannon)。Pull Request 185
在job_conf_sample_mq_rsync.xml中更新amqp_url(感谢 @AndreasSko)。Pull Request 184
使用通配符字符指定Pulsar版本(感谢 @VJalili)。Pull Request 181
重构以实现更结构化的输入。f477bc4
重构以传递对象存储的标识信息。Pull Request 180
重新设计导入以适应新的Galaxy库结构。da086c9
撤销空输入测试,它很可能导致无法传输不存在的文件。8bd5511
改进客户端映射器的文档。b6278b4
0.10.0 (2019-05-06)
实现对Kubernetes两个容器pod作业的支持 - 阶段和工具执行作为同一作业pod中的单独容器。Pull Request 176,Pull Request 178
0.9.1 (2019-05-01)
修复在阶段Galaxy文件时重复输入的问题。Pull Request 175
修复过时的assertEquals()(感谢 @nsoranzo)。Pull Request 173
修复方法缺失的问题。Pull Request 174
同步“最近”的银河运行者工具的变更。Pull Request 177
0.9.0 (2019-04-12)
添加配置参数以限制从磁盘读取的流大小。Pull Request 157
传递失败和丢失作业的完整作业状态。Pull Request 159
改进在作业设置/预置过程中出现问题时消息处理。Pull Request 160
重构预处理作业状态以提高重启能力和减少作业丢失。**应在没有作业运行时应用此更改。**Pull Request 164
添加通过环境变量覆盖配置的支持(感谢 @nuwang)。Pull Request 165
文档更新(感谢 @afgane)。Pull Request 170
在 Pulsar 客户端中修复 Python 3 问题(感谢 @mvdbeek)。Pull Request 172
0.8.3 (2018-02-08)
创建通用 wheels,以便在从 PyPI 安装时启用 Python 3 支持(感谢 @nsoranzo)。Pull Request 156
0.8.1 (2018-02-08)
更新标志图像的链接。Pull Request 145
小的错误和日志消息错别字(感谢 @blankenberg)。Pull Request 146,Pull Request 153
修复捕获引号工具文件的修复/改进。Pull Request 148
修复配置示例解析,以便 run.sh 能直接运行。Pull Request 149
0.8.0 (2017-09-21)
支持 Galaxy 作业运行/脚本中的新功能,以便 Pulsar 尊重 $GALAXY_VIRTUAL_ENV 和 $PRESERVE_GALAXY_ENVIRONMENT。修复在工具环境更改 python 在 $PATH 上的远程元数据。 Pull Request 137
在远程执行之前预先创建 Galaxy 工具输出(修复了在阶段输出中缺少输出文件的错误)。Pull Request 141
支持远程传输文件操作,无需设置 jobs_directory 目标参数 Pull Request 136
修复作业管理器文档中的无效字符(感谢 @mapa17)。Pull Request 130
修复 conda_auto_* 选项解析并包含一个示例 dependency_resolvers_conf.xml(感谢 @mapa17)。Pull Request 132
修复 tox/Travis 测试。Pull Request 138,Pull Request 139,Pull Request 140
修复 AMQP 确认中的错误。Pull Request 143
0.7.4 (2017-02-07)
0.7.3 (2016-10-31)
修复以真实用户提交作业时出现的“AttributeError”。Pull Request 124,问题 123
0.7.2 (2016-08-31)
修复在预处理错误条件下导致循环的bug。
0.7.1 (2016-08-29)
发布版本以规避 Galaxy 中的工具版本逻辑错误(发布版Galaxy版本认为 0.7.0 < 0.7.0.dev3)。
0.7.0 (2016-08-26)
0.6.1 (2015-12-23)
微调发布流程,导致0.6.0的PyPI描述页面不正确。
0.6.0 (2015-12-23)
Pulsar现在依赖于新的galaxy-lib Python包,而不是手动同步Pulsar和Galaxy之间的Python文件。
许多构建和测试改进。
修复了代码中的文档错误(感谢@erasche)。e8814ae
从Pulsar客户端中删除galaxy.eggs内容(感谢@natefoo)。00197f2
在README中添加新标志(感谢@martenson)。abbba40
在消息队列系统之上实现可选的致谢系统(感谢@natefoo)。Pull Request 82 431088c
感谢@remimarenco对文档的修复。Pull Request 78,Pull Request 80
修复了这一周期中引入的项目脚本错误(感谢@nsoranzo)。140a069
修复Windows上的config.py(感谢@ssorgatem)。Pull Request 84
添加XSEDE作业的工作管理器(感谢@natefoo)。1017bc5
修复pip依赖安装(感谢@afgane)。Pull Request 73
0.5.0 (2015-05-08)
0.4.0 (2015-04-20)
支持Python 3。Pull Request 62
修复运行pulsar-main和pulsar-config命令作为脚本时遇到的bug。9d43ae0
添加针对Pulsar服务器的issue命令的
脚本(实验性)。3cc7f74
0.3.0 (2015-04-12)
将项目名称更改为Pulsar,迁移到GitHub。
新增RESTful网络服务接口。
E. Rasche添加了SCP和Rsync文件暂存选项。Pull Request
支持基于YAML的配置。
支持更传统的pip/setup.py风格的安装。
数十个较小的错误修复和文档更新。
0.2.0
上一个版本名为LWR - 可在BitBucket上找到。
截至15.03版本,Galaxy仍然支持。
引入了对提交到各种队列系统的支持,作为Mesos框架运行,Docker支持,以及其他各种高级部署选项。
消息队列支持。
引入了可配置文件操作的框架。
0.1.0
支持运行由Python LWR网络进程管理的作业。
0.0.1
项目详情
下载文件
下载您平台所需的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
pulsar-app-0.15.6.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 0786e619e3f3488f6902a22b0b3cde24a026add006b38ef36aa91584cade666f |
|
MD5 | 32b3051201ff3817ad96d52ba60699a8 |
|
BLAKE2b-256 | b793fc9fb26c5133fd4bc6608f72267e658a68c0ecdd0f7127086c574e084452 |
pulsar_app-0.15.6-py2.py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 01bf5cf9d11773bb1068f3883de8fbeb1f1a434c6e2c6ad3d0372e3614f39aa5 |
|
MD5 | 352875078b307e9d4834010d09e9e096 |
|
BLAKE2b-256 | 038fce78f07373c172d0f2dcc4a7989297017d35ed5c55f2ae02557937418322 |