啤酒花园系统的建设和运行公用设施

brewtils的Python项目详细描述


brewtils是用于与beergarden系统接口的python库。如果你打算 写啤酒花园插件,这是正确的图书馆为你。除了编写插件外, 它提供了查询api的简单方法,并且得到了beer garden团队的正式支持。

GitterPyPIBuild StatusCode CoverageDocumentation StatusPyup Updates

功能

Brewtils帮助您与啤酒花园互动。

  • 创建啤酒花园插件的简单方法
  • 全面支持整个啤酒园API
  • 啤酒园团队正式支持

安装

要安装brewtils,请在终端中运行此命令:

$ pip install brewtils

或者将其添加到您的requirements.txt

$ cat brewtils >> requirements.txt
$ pip install -r requirements.txt

快速启动

你可以创建自己的啤酒花园插件没有太大的问题。首先,我们将创建 必需的hello world插件。创建插件非常简单:

frombrewtils.decoratorsimportsystem,parameter,commandfrombrewtils.pluginimportRemotePlugin@systemclassHelloWorld(object):@parameter(key="message",description="The message to echo",type="String")defsay_hello(self,message="World!"):print("Hello, %s!"%message)return"Hello, %s!"%messageif__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端口上运行了一个啤酒花园,那么运行此命令将注册并 启动你的插件!现在你的第一个插件运行在啤酒花园。我们用另一部分 从python中练习插件的brewtils库。

SystemClient旨在帮助您与注册的系统进行交互,就像它们是本机系统一样 python对象。

frombrewtils.rest.system_clientimportSystemClienthello_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已使用获取 啤酒园执行你的命令。SystemClient是大多数人与之交互的方式 啤酒花园当他们在python的上下文中并且想要发出请求时。

当然,api的其余部分可以通过brewtils包访问。那EasyClient 提供简单方便的方法来调用api并自动序列化响应。假设你 要获取所有系统上所有命令的列表:

frombrewtils.rest.easy_clientimportEasyClientclient=EasyClient('localhost',2337)systems=client.find_systems()forsysteminsystems:forcommandinsystem.commands:print(command.name)

这只是EasyClient的一小部分。尽情探索 暴露的方法。

有关更详细的信息和更好的演练,请查看完整的文档!

文档

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么数据库最类似于Map,每个用户/id存储无限多个“键”和“值”?   java仅使用super pom进行测试   内存不足如何解析java。OutOfMemoryError:Java堆空间在增加堆大小的情况下将意味着延迟OutOfMemoryError   来自另一个类的mysql和java jdbc调用[运行时应用程序]   java通过下拉菜单更改搜索框搜索的内容   JAVAlang.ClassNotFoundException:sun。jdbc。odbc。JdbcOdbcDriver   java Selenium点击链接   JavaSpringHibernate:从唯一值列表中获取对象列表   java Bing广告与桌面身份验证问题   java如何在没有任何外部SDK的情况下从安卓打印到收据打印机?   未调用java菜单片段类   java在IDEA和PyCharm中同时为同一个项目工作   java我们如何为同一个异常提供不同的海关信息   jakarta ee中是否预定义了“请求”和“响应”变量或值?   java更好地解决“之前和之后”难题?   尝试将数据从Excel添加到Java   发送电子邮件的Java代码只适用于一个电子邮件id?   java如何从资产解析XML?