啤酒花园插件和实用库
项目描述
brewtils 是用于与 Beergarden 系统交互的 Python 库。如果您计划编写 beer-garden 插件,这是您正确的库。除了编写插件外,它还提供了简单的查询 API 的方法,并得到 beer-garden 团队的官方支持。
特性
brewtils 帮助您与 beer-garden 交互。
轻松创建 beer-garden 插件
完全支持整个 Beer-Garden API
由 beer-garden 团队官方支持
安装
要安装 brewtils,请在您的终端中运行以下命令
$ pip install brewtils
或者将其添加到您的 requirements.txt
$ cat brewtils >> requirements.txt
$ pip install -r requirements.txt
快速入门
您可以在没有任何问题的情况下创建自己的 beer-garden 插件。为了开始,我们将创建必需的 hello-world 插件。创建插件就像
from brewtils.decorators import system, parameter, command
from brewtils.plugin import RemotePlugin
@system
class HelloWorld(object):
@parameter(key="message", description="The message to echo", type="String")
def say_hello(self, message="World!"):
print("Hello, %s!" % message)
return "Hello, %s!" % message
if __name__ == "__main__":
client = HelloWorld()
plugin = RemotePlugin(client,
name="hello",
version="0.0.1",
bg_host='127.0.0.1',
bg_port=2337)
plugin.run()
假设您在本地主机的 2337 端口上运行了 Beer Garden,运行此命令将注册并启动您的插件!现在您的第一个插件已在 beer-garden 中运行。让我们使用 brewtils 库的另一部分来从 Python 练习您的插件。
SystemClient 被设计用来帮助您将已注册的系统视为原生的 Python 对象。
from brewtils.rest.system_client import SystemClient
hello_client = SystemClient('localhost', 2337, 'hello')
request = hello_client.say_hello(message="from system client")
print(request.status) # 'SUCCESS'
print(request.output) # Hello, from system client!
在后台,SystemClient 已执行一个带有获取 beer-garden 执行所需有效负载的 HTTP POST 请求。当您在 Python 的上下文中与 beer-garden 交互并想要发出请求时,通常会使用 SystemClient。
当然,API 的其余部分可通过 brewtils 包访问。 EasyClient 提供简单方便的方法调用 API 并自动序列化响应。假设您想要获取所有系统上的所有命令列表
from brewtils.rest.easy_client import EasyClient
client = EasyClient('localhost', 2337)
systems = client.find_systems()
for system in systems:
for command in system.commands:
print(command.name)
这仅仅是 EasyClient 可能做到的一小部分。请随意探索所有公开的方法。
有关更详细的信息和更好的说明,请查看完整文档!
文档
完整的 Beer Garden 文档可在 https://beer-garden.io 找到
Brewtils 文档可在 https://brewtils.readthedocs.io 找到
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。