云中管理运行Tuflow模型的HTTP API
项目描述
=========
TuCluster
=========
云或本地HPC集群中管理运行Anuga和Tuflow模型的HTTP API。
.. note:: TuCluster处于早期开发阶段,尚未准备好用于生产使用。
我们正在努力尽快发布0.1版本!
.. image:: https://img.shields.io/travis/JamesRamm/tucluster.svg
:target: https://travis-ci.org/JamesRamm/tucluster
.. image:: https://codecov.io/gh/JamesRamm/tucluster/branch/master/graph/badge.svg
:target: https://codecov.io/gh/JamesRamm/tucluster
.. image:: https://readthedocs.org/projects/tucluster/badge/?version=latest
:target: http://tucluster.readthedocs.io/en/latest/?badge=latest
:alt: 文档状态
.. image:: https://pyup.io/repos/github/JamesRamm/tucluster/shield.svg
:target: https://pyup.io/repos/github/JamesRamm/tucluster/
:alt: 更新
特性
--------
- 上传Anuga或Tuflow模型数据,并在多个工作者之间排队模型执行
- 基本验证(tuflow)控制文件
- 在mongodb中持久化模型元数据,允许管理和搜索所有建模活动
- 轮询运行中的模型以获取其状态
- 探索和下载结果数据
- 通过创建一个同时具有Anuga和Tuflow运行的单一模型来比较建模引擎
未来
------
这个API非常年轻,我们有很多想法要扩展。以下是我们希望实现的大致路线图
- 用户帐户
- 结果/失败时的电子邮件通知
- 通过各种属性(日期、用户等)搜索模型
- 基于模型边界的空间搜索模型
- 使用内省验证Anuga脚本
- 部署脚本或容器化
- AWS部署助手
以下是一些tucluster的想法,可能会转移到其他项目/它们自己的项目中
- 一个简单的命令行客户端
- 在线编辑Anuga脚本和tuflow控制文件,以及GIS输入(基于浏览器的客户端)
- 自动发现、下载和管理DTM数据。这将消除客户端昂贵数据上传的需要
- 为网络地图切割结果
- 其他结果的视觉化和输入
- 根据搜索区域将结果拼接到一个连续的栅格中
- 通过WebSocket进行实时监控。(将被转移到客户端前端项目中)
如果您有其他功能想法,请提出问题。
快速入门
-----------
- 启动服务器:`gunicorn tucluster.app`
- 启动一个celery工作进程:`celery -A qflow worker -l info`
您现在可以使用HTTPie等工具与API交互
端点
---------
: `/models`
- GET:返回所有已创建模型的列表。一个模型有一个名称、描述和一个包含所有tuflow模型输入文件的文件夹
- POST:上传包含所有模型数据的单个zip存档。TCF文件必须在根目录中。返回创建的模型表示。或者,传递一个包含`name`属性的JSON对象,以无数据创建新模型
您还可以上传一个要添加到模型数据文件夹的文件
: `/models/{name}`
- GET:通过名称检索单个模型的表示
- PATCH:更新单个模型的`name`、`description`和`email`(用户)
您还可以上传一个文件添加到模型数据文件夹
: `/runs`
- GET:返回所有模型运行的列表。模型运行表示Tuflow模型的单次执行。
它有一个链接到其模型、控制文件、tuflow可执行文件名称和任务ID。
可以使用任务ID查询运行的状态。完成后,结果、日志和检查文件夹的位置在模型运行中可用。
- POST:启动Tuflow建模任务。返回创建的模型运行表示。POST体应该是包含以下内容的JSON:
- ``tuflowExe`` - 用于此运行的tuflow可执行文件名称
- ``modelName`` - 提供输入数据的父模型名称
- ``controlFile`` - 要用于此运行的控制文件路径(从父模型中获取)
: `/runs/{oid}`
- GET:通过其ID检索单个模型运行的表示
: `/tasks/{id}`
- GET:通过其task_id检索任务的当前状态。任务是一个当前正在执行的模式运行,任务ID可以从模型运行对象中检索。
- GET:通过其FID下载文件。FID是文件路径的url安全的base64编码。这些编码在检索目录树表示时返回。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
: `/files/{fid}`
- GET:下载一个通过其FID的文件。FID是文件路径的url安全的base64编码。这些编码在检索目录树表示时返回。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
: `/files/tree/{fid}`
- GET:获取由`fid`描述的文件夹路径的目录树结构的JSON表示。这是可以从成功的任务结果(输出文件夹)或模型中检索到的文件夹路径的url安全的base64编码,该模型返回输入文件夹位置作为fid。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
许可证
--------
Tucluster是免费的、开源的软件,许可协议为GPLv3。
=======
历史
=======
0.1.0 (2017-08-03)
------------------
* 在PyPI上的首次发布。
TuCluster
=========
云或本地HPC集群中管理运行Anuga和Tuflow模型的HTTP API。
.. note:: TuCluster处于早期开发阶段,尚未准备好用于生产使用。
我们正在努力尽快发布0.1版本!
.. image:: https://img.shields.io/travis/JamesRamm/tucluster.svg
:target: https://travis-ci.org/JamesRamm/tucluster
.. image:: https://codecov.io/gh/JamesRamm/tucluster/branch/master/graph/badge.svg
:target: https://codecov.io/gh/JamesRamm/tucluster
.. image:: https://readthedocs.org/projects/tucluster/badge/?version=latest
:target: http://tucluster.readthedocs.io/en/latest/?badge=latest
:alt: 文档状态
.. image:: https://pyup.io/repos/github/JamesRamm/tucluster/shield.svg
:target: https://pyup.io/repos/github/JamesRamm/tucluster/
:alt: 更新
特性
--------
- 上传Anuga或Tuflow模型数据,并在多个工作者之间排队模型执行
- 基本验证(tuflow)控制文件
- 在mongodb中持久化模型元数据,允许管理和搜索所有建模活动
- 轮询运行中的模型以获取其状态
- 探索和下载结果数据
- 通过创建一个同时具有Anuga和Tuflow运行的单一模型来比较建模引擎
未来
------
这个API非常年轻,我们有很多想法要扩展。以下是我们希望实现的大致路线图
- 用户帐户
- 结果/失败时的电子邮件通知
- 通过各种属性(日期、用户等)搜索模型
- 基于模型边界的空间搜索模型
- 使用内省验证Anuga脚本
- 部署脚本或容器化
- AWS部署助手
以下是一些tucluster的想法,可能会转移到其他项目/它们自己的项目中
- 一个简单的命令行客户端
- 在线编辑Anuga脚本和tuflow控制文件,以及GIS输入(基于浏览器的客户端)
- 自动发现、下载和管理DTM数据。这将消除客户端昂贵数据上传的需要
- 为网络地图切割结果
- 其他结果的视觉化和输入
- 根据搜索区域将结果拼接到一个连续的栅格中
- 通过WebSocket进行实时监控。(将被转移到客户端前端项目中)
如果您有其他功能想法,请提出问题。
快速入门
-----------
- 启动服务器:`gunicorn tucluster.app`
- 启动一个celery工作进程:`celery -A qflow worker -l info`
您现在可以使用HTTPie等工具与API交互
端点
---------
: `/models`
- GET:返回所有已创建模型的列表。一个模型有一个名称、描述和一个包含所有tuflow模型输入文件的文件夹
- POST:上传包含所有模型数据的单个zip存档。TCF文件必须在根目录中。返回创建的模型表示。或者,传递一个包含`name`属性的JSON对象,以无数据创建新模型
您还可以上传一个要添加到模型数据文件夹的文件
: `/models/{name}`
- GET:通过名称检索单个模型的表示
- PATCH:更新单个模型的`name`、`description`和`email`(用户)
您还可以上传一个文件添加到模型数据文件夹
: `/runs`
- GET:返回所有模型运行的列表。模型运行表示Tuflow模型的单次执行。
它有一个链接到其模型、控制文件、tuflow可执行文件名称和任务ID。
可以使用任务ID查询运行的状态。完成后,结果、日志和检查文件夹的位置在模型运行中可用。
- POST:启动Tuflow建模任务。返回创建的模型运行表示。POST体应该是包含以下内容的JSON:
- ``tuflowExe`` - 用于此运行的tuflow可执行文件名称
- ``modelName`` - 提供输入数据的父模型名称
- ``controlFile`` - 要用于此运行的控制文件路径(从父模型中获取)
: `/runs/{oid}`
- GET:通过其ID检索单个模型运行的表示
: `/tasks/{id}`
- GET:通过其task_id检索任务的当前状态。任务是一个当前正在执行的模式运行,任务ID可以从模型运行对象中检索。
- GET:通过其FID下载文件。FID是文件路径的url安全的base64编码。这些编码在检索目录树表示时返回。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
: `/files/{fid}`
- GET:下载一个通过其FID的文件。FID是文件路径的url安全的base64编码。这些编码在检索目录树表示时返回。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
: `/files/tree/{fid}`
- GET:获取由`fid`描述的文件夹路径的目录树结构的JSON表示。这是可以从成功的任务结果(输出文件夹)或模型中检索到的文件夹路径的url安全的base64编码,该模型返回输入文件夹位置作为fid。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
当检索目录树表示时,这些编码可以从中检索到文件夹路径。
许可证
--------
Tucluster是免费的、开源的软件,许可协议为GPLv3。
=======
历史
=======
0.1.0 (2017-08-03)
------------------
* 在PyPI上的首次发布。
项目详情
关闭
tucluster-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f496f902c68c4c962a48b8e3cc7840b8745dea207cc33cf1e7a628c56240c6c1 |
|
MD5 | 86b0537ad1d41739be4a52a40a7cdfa9 |
|
BLAKE2b-256 | 929690ebdbcb332df801232a865a3fe1695c64587ce295802febabf09600791f |