一个基于twisted的juju客户端。

txjuju的Python项目详细描述


txjuju提供基于twisted的工具 用于与Juju交互。这个 包括一个api客户端和一个cli包装器。图书馆有限 对于Python2,但同时支持juju 1.x和2.x。 Python3正在被关注。

注意,在txjujuju中只暴露了jujuju功能的一部分。 这是因为代码源于 Landscape项目,没有增长 远远超出了景观的需要。的正式python绑定 菊苣(python-libjuju) 通常会提供更好的体验。在某个时刻,python libjujuju 可能完全取代TXJUU。

关键部件

以下是txjuju的基本类:

另外,txjuju.prepare_for_bootstrap()特别有用。

有关详细信息,请参见DOC.rst

示例用法

API客户端

fromtwisted.internetimportreactorfromtwisted.internet.deferimportinlineCallbacksfromtxjuju.apiimportEndpointendpoint=Endpoint(reactor,"ec2-1-2-3-4.compute-1.amazonaws.com")deferred=endpoint.connect()@inlineCallbacksdefconnected(client):yieldclient.login("user-admin","54830489236383334d1d9fd84adae72c")yieldclient.setAnnotations("unit","1",{"foo":"bar"})deferred.addCallback(connected)reactor.run()

cli包装器

importpprintfromtwisted.internetimportreactorfromtwisted.internet.deferimportinlineCallbacks,returnValuefromtxjujuimportprepare_for_bootstrapfromtxjuju.cliimportBootstrapSpec,Juju1CLIcfgdir="/tmp/my-juju"spec=BootstrapSpec("my-env","lxd")cli=Juju1CLI(cfgdir)@inlineCallbacksdefbootstrap():prepare_for_bootstrap(spec,"1.25.6",cfgdir)yieldcli.boostrap(spec.name,"0")raw=yieldcli.api_info(spec.name)returnValue(raw)deferred=bootstrap()deferred.addCallback(lambdav:pprint.pprint(v))reactor.run()

贡献

如果你想为txjuju做贡献,请随时打开一个问题或 给我们一个请求。就从txjuju借钱而言, 代码已获得lgplv3许可。

包装

可以使用python2 setup.py sdist创建python包。 有关构建Debian包的信息,请参见BUILDbuild.sh

风格

TXJUJU代码遵循PEP 8。经常跑步是个好主意 就像flake8当 做出改变。其他TXJUJU特定指南:

  • 对字符串使用双引号
  • 测试方法应具有docstrings

测试

要运行测试套件,请运行make testpython2 -m unittest txjuju.tests.test_XXX

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

推荐PyPI第三方库


热门话题
安卓如何在java字符串中获取RATE的值   java ANT在哪里输出编译器错误?   在java中,while循环在何处启动对象   javacom。谷歌。格森。内部的LinkedTreeMap无法强制转换到我的类   java单选按钮。isSelected()方法未返回正确的响应   嵌入式系统中applet中的java相对码基字段   如何在eclipse中将Java应用程序附加到jvm探查器?   java为什么Android应用程序崩溃?   在java中拖放上传后保持文件夹结构   爪哇多领导人选举问题   java Springs RestTemplate如何处理postForEntity()中的错误响应   Java如何用前导零递增整数字符串?   java Android将文本作为图像共享给其他应用程序   Java搜索替换   java isDirectory()不适用于UNIX目录   java我们可以得到显示测试类是否通过或失败的TestNG报告吗   Java类对象排序和分组   简单Java幂递归   java在处理MethodArgumentNotValidException时如何访问请求对象?