跳转到主要内容

通过RESTful HTTP接口管理短信传输的系统

项目描述

Junebug是一个开源的服务器应用程序,为集成商、运营商和应用程序开发者提供短信和USSD网关连接。

Junebug使集成商能够自动化大规模消息集成的设置、监控、日志记录和健康检查。

Junebug是一个通过RESTful HTTP接口管理文本消息传输的系统,它支持

  • 创建、检查、更新和删除传输

  • 发送和接收文本消息

  • 接收已发送文本消息的状态更新

  • 监控传输的健康状况和性能

  • 检索最近的传输日志以调试传输问题。

设计原则

Junebug旨在满足以下广泛的准则

  • 易于安装

  • 最小有用的功能集

  • 合理的依赖关系集

文档

文档可在网上找到,地址为http://junebug.readthedocs.org/,并在仓库的docs目录中。

在本地构建文档

$ virtualenv ve
$ source ve/bin/activate
(ve)$ pip install -e .-r requirements-docs.txt
(ve)$ cd docs
(ve)$ make html

您可以在docs/_build/index.html中找到文档。

您可以通过以下方式联系Junebug开发团队

问题可以在GitHub问题跟踪器中提出。请不要使用问题跟踪器进行一般支持查询。

运行测试

要本地运行测试

$ virtualenv ve
$ source ve/bin/activate
(ve) pip install -e . -r requirements-dev.txt
(ve)$ trial junebug

发布版本

发布按照git flow进行,并坚持语义版本化来选择新版本号。在进行新版本发布之前,您应确保docs/release-notes.rst中的发布说明是最新的。

要创建新版本,请确保您处于develop分支,然后使用utils脚本更改软件包版本

$ git checkout develop
$ ./utils/bump-version.sh 0.1.0

然后,提交更改的文件并标记该提交

$ git commit -m "Release 0.1.0"
$ git tag junebug-0.1.0

然后,将更改推送到develop,并推送新标签。这将启动travis构建,通过后将在PyPI上创建新版本

$ git push origin develop
$ git push origin junebug-0.1.0

然后,您可以合并并将此代码推送到master和相关发布分支

$ git checkout master
$ git merge junebug-0.1.0
$ git push origin master
$ git checkout release/0.1.x
$ git merge junebug-0.1.0
$ git push origin release/0.1.x

在Junebug上开发

在junebug目录中的每个Python文件中,junebug/tests目录中都有一个对应的文件,其中包含该文件的单元测试。

任何添加的修复都应添加相关测试,以确保未来的更改不会再次引入错误。

任何添加的功能都应具有相关测试,以确保功能按预期工作。

每个拉取请求应包括对文档的相关更改,包括更新发布说明以包括拉取请求中做出的更改。

junebug.amqp

此模块负责维护AMQP连接,并通过该连接发送和接收消息。

junebug.api

此模块负责包含每个HTTP API端点的逻辑。它使用Klein,它是一个类似于Flask的Web框架,但运行在Twisted之上,并支持返回deferred,这使得我们能够在响应生成中执行异步操作,而不阻塞。

junebug.channel

此模块包含我们目前唯一的Junebug通道实现。此实现是内存实现,其中新通道作为Twisted服务启动。

其他可能的未来实现可能包括基于进程的实现,其中每个通道作为一个新进程启动,或者基于Mesos的实现,其中每个通道在集群中作为一个新容器启动。

任何新的通道实现都需要在Channel类上实现所有公共方法。

junebug.command_line

本模块包含使用命令行界面启动 Junebug 所需的所有配置、处理和运行服务的功能。

对配置选项的任何更改也应应用于位于 junebug/config.py 中的基于文件的 yaml 配置选项。

junebug.config

此模块包含一个 confmodel 类,用于验证可用于指定 Junebug 配置选项的 yaml 文件。

对配置选项的任何更改也应应用于位于 junebug/command_line.py 中的命令行参数。

junebug.error

此模块包含所有 Junebug 模块之间共享的错误类。

junebug.logging_service

此模块包含日志观察者,用于观察特定通道的日志,并将这些日志写入单独的文件,以便每个通道都可以单独显示其日志。

它还包含一些实用方法,用于将这些日志文件读取到对象列表中。

junebug.plugin

此模块包含所有 Junebug 插件的基类。它显示了插件实现者需要实现的功能。

junebug.plugins.*

此包中的每个模块都包含一个内置在 Junebug 核心代码库中的 Junebug 插件。

junebug.service

此模块包含 Junebug 的主要 twisted 服务,它运行 http API,并具有所有传输作为其子项。

junebug.stores

此模块包含我们拥有的所有不同存储。目前,它们都由 Redis 支持,并存储频道、消息和事件相关信息。

junebug.utils

此模块包含在 Junebug 中各处使用的实用函数。

junebug.validate

此模块包含一些辅助函数,用于定义用于验证传入 HTTP API 的请求的验证器。

junebug.workers

此模块包含 Junebug 为每个频道运行的 Vumi 工作人员。这包括消息转发工作人员,该工作人员通过 AMQP 和 HTTP 转发传入消息,并在各种存储中存储消息和事件,以及频道状态工作人员,该工作人员存储和转发频道状态更新。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分布

junebug-0.2.0.tar.gz (104.7 kB 查看哈希值)

上传时间 源代码

构建发行版

junebug-0.2.0-py2-none-any.whl (89.8 kB 查看哈希值)

上传时间 Python 2