跳转到主要内容

mesoshttp

项目描述

Python mesos 调度器 HTTP 库

这是一个用于创建 Mesos 调度器的 Python 库。

它消除了使用/安装 Mesos Python 绑定的需要,并使用 HTTP API(原生绑定不再更新以添加新功能)

MesosClient 是连接到 Mesos 主机的入口点。您可以在事件上注册回调。在订阅后,您将获得一个驱动器实例,您可以使用它向当前框架(杀死等)的主机发送消息

MesosClient 必须在单独的线程中执行,因为它保持与主机的循环池连接。

提交的任务应采用 JSON 格式(根据 mesos.proto)。

请参阅 sample/test.py 以获取示例。

回调将“阻塞” mesos 消息处理,因此它们应该是简短的,或者消息应转发到其他线程/进程中的队列,其中更长的任务将处理消息。

DCOS EE 严格

已添加功能以支持使用 ACS 登录,以便在严格安全状态下访问主机。《sample/test.py》脚本配置为接受《SERVICE_SECRET》环境变量,该变量可以使用以下脚本创建并传递给服务

dcos security org service-accounts keypair service-account-private.pem service-account-public.pem
dcos security org service-accounts create -p service-account-public.pem -d "Service account for Scale data processing framework" service-account
dcos security secrets create-sa-secret --strict service-account-private.pem service-account service-account-secret

# Test with SUPERUSER perms on user
dcos security org users grant service-account dcos:superuser full

# Build image to test - update name in 2 commands below and marathon.json to your personal Docker Hub account name
docker build -t gisjedi/python-mesos-http -f Dockerfile-test-framework .
docker push gisjedi/python-mesos-http

# Deploy app consuming image to marathon
dcos marathon app add sample/marathon.json

# Once success has been confirmed, more granular permissions should be applied
dcos security org users revoke service-account dcos:superuser full
dcos security org users grant service-account dcos:mesos:agent:task create
dcos security org users grant service-account dcos:mesos:agent:task:app_id create
dcos security org users grant service-account dcos:mesos:agent:task:user:nobody create
dcos security org users grant service-account dcos:mesos:master:framework create
dcos security org users grant service-account dcos:mesos:master:reservation create
dcos security org users grant service-account dcos:mesos:master:reservation delete
dcos security org users grant service-account dcos:mesos:master:reservation:principal:service_account delete
dcos security org users grant service-account dcos:mesos:master:task create
dcos security org users grant service-account dcos:mesos:master:task:app_id create
dcos security org users grant service-account dcos:mesos:master:task:user:nobody create
dcos security org users grant service-account dcos:mesos:master:volume create
dcos security org users grant service-account dcos:mesos:master:volume delete
dcos security org users grant service-account dcos:mesos:master:volume:principal:service_account delete

关于

此库没有实现 mesos.proto 的所有选项,并且仅管理调度器(不是执行器)。实现的功能应该足够实现一个调度器,如果缺少某些内容,请提问或贡献;-)

安装

pip install mesoshttp

文档

Documentation Status

0.4.2: 修复打包以添加README 0.4.1: 添加对心跳消息的支持 0.3.2: 修复第9号PR中破坏代码的问题 0.3.1: 添加可选超时以检测Mesos断开连接 PR #8 0.3.0: 添加DCOS严格安全支持(合并#6) 0.2.14: 合并#4 扩展客户端以组合出价

0.2.13: 合并#3 可选设置ACCEPT和DECLINE请求中的refuse_seconds过滤器通过方法中的新options字段

0.2.12: 将可选的主机名和webui_url添加到框架中(PR #2)。

0.2.11: 合并#1,Accept消息中的操作从列表更改为字典,但接口定义为列表。

0.2.10: 修复python3 zookeeper数据解码问题

0.2.9: 删除调试日志

0.2.8: 管理与Mesos主机的断开和重新连接,添加DISCONNECTED和RECONNECTED事件

0.2.7: 修复重试管理,捕获更多可能的错误

0.2.6: 修复FAILURE和RESCIND管理

0.2.5: 添加RESCIND回调支持

0.2.4: 修复未注册回调的事件的情况

0.2.3: 添加更多调试日志 修复订阅失败时的循环条件

0.2.2: 在订阅异常的情况下打印异常堆栈

0.2.1: 修复主信息不可用的情况

0.2.0: 添加zookeeper检测

0.1.0: 创建

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

此版本没有可用的源分发文件。请参阅有关生成分发存档的教程。

构建分发

mesoshttp-0.4.2-py2.py3-none-any.whl (17.4 kB 查看散列

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页