Juju的Python库
项目描述
源代码: https://github.com/juju/python-libjuju
错误报告: https://github.com/juju/python-libjuju/issues
文档: https://pythonlibjuju.readthedocs.io/en/latest/
需求
Python 3.9/3.10
设计笔记
异步 - 使用Python的asyncio和async/await特性
WebSocket级别的绑定是通过Juju的Golang代码程序化生成的(间接),确保API完全覆盖
提供了一个面向对象的层,封装了大部分的WebSocket API,并提供熟悉的名词和动词(例如Model.deploy(),Application.add_unit()等)
安装
pip3 install juju
快速入门
以下是一个简单的示例,展示了库的基本用法。示例连接到当前活动的Juju模型,部署单个ubuntu charm的单元,然后退出
注意:Pylibjuju需要已经启动的Juju控制器来连接。
#!/usr/bin/python3
import logging
import sys
from juju import jasyncio
from juju.model import Model
async def deploy():
# Create a Model instance. We need to connect our Model to a Juju api
# server before we can use it.
model = Model()
# Connect to the currently active Juju model
await model.connect()
try:
# Deploy a single unit of the ubuntu charm, using the latest revision
# from the stable channel of the Charm Store.
ubuntu_app = await model.deploy(
'ubuntu',
application_name='my-ubuntu',
)
if '--wait' in sys.argv:
# optionally block until the application is ready
await model.wait_for_idle(status = 'active')
finally:
# Disconnect from the api server and cleanup.
await model.disconnect()
def main():
logging.basicConfig(level=logging.INFO)
# If you want to see everything sent over the wire, set this to DEBUG.
ws_logger = logging.getLogger('websockets.protocol')
ws_logger.setLevel(logging.INFO)
# Run the deploy coroutine in an asyncio event loop, using a helper
# that abstracts loop creation and teardown.
jasyncio.run(deploy())
if __name__ == '__main__':
main()
更多示例可以在文档中找到,以及源代码树的examples/目录中,可以使用tox运行。例如,要运行examples/connect_current_model.py,请使用
tox -e example -- examples/connect_current_model.py
交互式解释器
要在交互式解释器中实验库,请以asyncio模式启动python
$ python3 -m asyncio
然后,要连接到当前模型并获取状态
>>> from juju.model import Model
>>> model = Model()
>>> await model.connect_current()
>>> status = await model.get_status()
版本管理
当前的Pylibjuju发布策略跟踪Juju发布周期。特别是,每当Juju发布最新/稳定版本时,pylibjuju将在接下来的星期内推出具有相同版本的发布。新生成的模式将根据Juju版本进行更新。
变更日志
3.5.2.0
2024年7月11日星期四
## 变化内容
修复由@luissimas在https://github.com/juju/python-libjuju/pull/1053中解析存储约束的问题
由@Aflynn50在https://github.com/juju/python-libjuju/pull/1058中将setuptools添加到tox.ini中
修复(refresh):由@jack-w-shaw在https://github.com/juju/python-libjuju/pull/1067中的修订问题
特性:由@SimonRichardson在https://github.com/juju/python-libjuju/pull/1068中添加了常规提交的静态分析
修复(series):由@jack-w-shaw在https://github.com/juju/python-libjuju/pull/1063中添加了对noble的支持
修复(zones):由@luissimas在https://github.com/juju/python-libjuju/pull/1054中修复了解析区域约束列表的问题
修复(model):由@gboutry在https://github.com/juju/python-libjuju/pull/1065中修复了list-secrets facade的实例化错误
修复(makefile):由@cderici在https://github.com/juju/python-libjuju/pull/1069中在makefile目标中在lint之前运行.tox
3.5.0.0
2024年5月30日星期四
由@Aflynn50在https://github.com/juju/python-libjuju/pull/1038中使consume尊重URL中的控制器名称
由@cderici在https://github.com/juju/python-libjuju/pull/1041中修复了bug模板中textarea的多行描述问题
由@Aflynn50在https://github.com/juju/python-libjuju/pull/1044中修复了与microk8s代理相关的问题
在addModel步骤中添加缺失的“revision”参数。由@Thanhphan1147在https://github.com/juju/python-libjuju/pull/1043提出。
由@cderici在pylibjuju文档中添加用户APIhttps://github.com/juju/python-libjuju/pull/1049
3.4.0.0
2024年3月25日星期一
由@cderici在https://github.com/juju/python-libjuju/pull/1030中添加构建测试和更新问题模板
修复:机器scp & ssh by @yanksyoon in https://github.com/juju/python-libjuju/pull/1020
修复:在master上修复none类型问题 by @Aflynn50 in https://github.com/juju/python-libjuju/pull/1036
3.3.1.1
2024年2月15日星期四
这是一个修补版本,用于修复3.3.1.0版本中的一些构建问题,这些问题在某些情况下使得该版本无法使用。
由@cderici在https://github.com/juju/python-libjuju/pull/1026中解决了3.3.1.0中的构建问题
3.3.1.0
2024年2月8日星期四
由@gboutry在https://github.com/juju/python-libjuju/pull/1005中删除了paramiko的上限
由@cderici在https://github.com/juju/python-libjuju/pull/1006中删除了在测试中显式传递event_loop
chore:通过@tonyandrewmeyer在https://github.com/juju/python-libjuju/pull/1007中删除了对websockets依赖的上限
通过@cderici在https://github.com/juju/python-libjuju/pull/1008中设置目标上限版本
通过@cderici在https://github.com/juju/python-libjuju/pull/1012中使使用make运行测试更容易
通过@cderici在https://github.com/juju/python-libjuju/pull/1014中避免将信号处理程序安装到事件循环中
feat:通过@yanksyoon在https://github.com/juju/python-libjuju/pull/1017中移除app阻塞直到完成
feat:通过@yanksyoon在https://github.com/juju/python-libjuju/pull/1018中移除app超时
通过@cderici在https://github.com/juju/python-libjuju/pull/1022中将2.9的最新更改向前端口到3.x
3.3.0.0
本版本的贡献主要是用户秘密,这是Juju 3.3版本的一部分。
2023年11月30日星期四
由@cderici在https://github.com/juju/python-libjuju/pull/984中使pyblijuju在连接到控制器时不再依赖于juju客户端
由@DanielArndt在https://github.com/juju/python-libjuju/pull/937中处理current_controller()上的FileNotFoundError
由@cderici在https://github.com/juju/python-libjuju/pull/986中添加了对添加用户秘密的支持
由@cderici在https://github.com/juju/python-libjuju/pull/987中提供了对用户秘密的完整支持
3.2.3.0
2023年10月26日星期四
通过@cderici在https://github.com/juju/python-libjuju/pull/922中提高了仓库维护改进
通过@cderici在https://github.com/juju/python-libjuju/pull/926中使陈旧的机器人不会打扰功能请求
通过@cderici在https://github.com/juju/python-libjuju/pull/928中修复了linters问题
通过@DanielArndt在https://github.com/juju/python-libjuju/pull/927中修复了docstring中的拼写错误
通过@marceloneppel在https://github.com/juju/python-libjuju/pull/930中修复了README中的asyncio
通过@cderici在https://github.com/juju/python-libjuju/pull/932中修复了integration/test_application.test_action
通过@cderici在https://github.com/juju/python-libjuju/pull/931中更新了3.2 facade客户端
[JUJU-4488] 由@cderici在3.x版本源文件中添加许可头,详情见https://github.com/juju/python-libjuju/pull/934
由@DanielArndt更新异步测试以使用内置Python套件,详情见https://github.com/juju/python-libjuju/pull/935
由@cderici将正确的charm URL传递给系列选择器,详情见https://github.com/juju/python-libjuju/pull/942
由@cderici对python-libjuju进行绿色CI清理,详情见https://github.com/juju/python-libjuju/pull/939
由@cderici在3x版本中向前推进对嵌套假设表达式的支持,详情见https://github.com/juju/python-libjuju/pull/943
由@cderici发布3.2.2.0版本说明,详情见https://github.com/juju/python-libjuju/pull/945
由@cderici清理3.x版本的发布流程,详情见https://github.com/juju/python-libjuju/pull/946
由@cderici使用新的DeployFromRepository端点进行部署,详情见https://github.com/juju/python-libjuju/pull/949
由@cderici处理挂起的上传资源deployfromrepository,详情见https://github.com/juju/python-libjuju/pull/953
由@cderici优化连接断开,详情见https://github.com/juju/python-libjuju/pull/952
由@sed-i使用log.warning代替已弃用的warn,详情见https://github.com/juju/python-libjuju/pull/954
由@cderici在3.x跟踪上通过端点查找控制器名称,详情见https://github.com/juju/python-libjuju/pull/966
由@cderici优化并修复单元移除,详情见https://github.com/juju/python-libjuju/pull/967
由@jack-w-shaw允许在refresh中使用switch kwarg以切换到本地charm,详情见https://github.com/juju/python-libjuju/pull/971
由@jack-w-shaw对本地charm进行一致的charm URL解析,详情见https://github.com/juju/python-libjuju/pull/974
由@cderici修复3.x版本上的Juju配置目录位置,详情见https://github.com/juju/python-libjuju/pull/976
[JUJU-4779] 由@jack-w-shaw确保本地charm切换的有效charm来源,详情见https://github.com/juju/python-libjuju/pull/978
由@cderici在3.x上实现带有资源的应用程序刷新,详情见https://github.com/juju/python-libjuju/pull/973
3.2.2.0
2023年9月6日星期三
这是3.x轨道上的一个小版本,与任何Juju 3.x控制器兼容。
通过@cderici在https://github.com/juju/python-libjuju/pull/922中提高了仓库维护改进
通过@cderici在https://github.com/juju/python-libjuju/pull/926中使陈旧的机器人不会打扰功能请求
通过@cderici在https://github.com/juju/python-libjuju/pull/928中修复了linters问题
通过@DanielArndt在https://github.com/juju/python-libjuju/pull/927中修复了docstring中的拼写错误
通过@marceloneppel在https://github.com/juju/python-libjuju/pull/930中修复了README中的asyncio
通过@cderici在https://github.com/juju/python-libjuju/pull/932中修复了integration/test_application.test_action
通过@cderici在https://github.com/juju/python-libjuju/pull/931中更新了3.2 facade客户端
[JUJU-4488] 由@cderici在3.x版本源文件中添加许可头,详情见https://github.com/juju/python-libjuju/pull/934
由@DanielArndt更新异步测试以使用内置Python套件,详情见https://github.com/juju/python-libjuju/pull/935
由@cderici将正确的charm URL传递给系列选择器,详情见https://github.com/juju/python-libjuju/pull/942
由@cderici对python-libjuju进行绿色CI清理,详情见https://github.com/juju/python-libjuju/pull/939
由@cderici在3x版本中向前推进对嵌套假设表达式的支持,详情见https://github.com/juju/python-libjuju/pull/943
3.2.0.1
2023年7月20日星期四
这是3.x轨道上的一个点版本,与任何Juju 3.x控制器兼容。
由@cderici更新readme并添加一些函数的docstrings,详情见https://github.com/juju/python-libjuju/pull/873
由@cderici向前端口从属实用工具,详情见https://github.com/juju/python-libjuju/pull/880
[JUJU-3952] 由@cderici重新审视访问控制级别,详情见https://github.com/juju/python-libjuju/pull/882
[JUJU-3999] 由@cderici避免解析覆盖报价的端点,详情见https://github.com/juju/python-libjuju/pull/887
由@cderici在应用程序刷新中向前端口升级资源修复,详情见https://github.com/juju/python-libjuju/pull/889
[JUJU-4076] 由@cderici重命名wait_for_units并使语义更清晰,详情见https://github.com/juju/python-libjuju/pull/890
由@cderici在RTD上稳定sphinx构建,详情见https://github.com/juju/python-libjuju/pull/899
由@cderici将测试实用工具移动到单独的模块中,详情见https://github.com/juju/python-libjuju/pull/903
由 @cderici 在 https://github.com/juju/python-libjuju/pull/904 中移除问题模板的标题前缀
[JUJU-4048] 由 @jack-w-shaw 在 https://github.com/juju/python-libjuju/pull/907 中使用 GetChangesMapArgs 进行捆绑更改
由 @cderici 在 https://github.com/juju/python-libjuju/pull/910 中将端口从 2.9 前向到 3.x
由 @cderici 在 https://github.com/juju/python-libjuju/pull/918 中移除 pyyaml 版本的限制
3.2.0.0
2023年6月7日星期三
本版本包含 Juju 3.2.0 的新端点。
本版本与任何 Juju 3.x 控制器兼容。
由 @cderici 在 https://github.com/juju/python-libjuju/pull/856 中将 base.bootstrapped 装饰器添加到集成测试中
由 @addyess 在 https://github.com/juju/python-libjuju/pull/853 中将 mantic 和 lunar 添加到 ubuntu 版本列表中
[JUJU-3885] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/866 中前向端口 ipv6 支持
由 @cderici 在 https://github.com/juju/python-libjuju/pull/871 中重新审视使用 RTD 上的 sphinx 进行自动文档生成
[JUJU-3894] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/870 中将 2.9 的一些修复前向端口到 master
由 @cderici 在 https://github.com/juju/python-libjuju/pull/858 中重新审视秘密后端集成测试
[JUJU-3954] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/875 中修复不正确的 base 通道计算
[JUJU-3927] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/874 中添加 3.2.0 外观
3.1.2.0
2023年5月5日星期五
本版本已在 Juju 3.1.2 上进行测试,并包含秘密后端的新端点。
本版本与任何 Juju 3.x 控制器兼容。
[JUJU-3202] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/807 中添加 3.1.1 的外观
由 @cderici 在 https://github.com/juju/python-libjuju/pull/812 中添加销毁单元
[JUJU-3517] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/826 中重新审视连接中的 _build_facades
[JUJU-3527] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/828 中添加 3.1.2 和 3.2-beta2 架构
[JUJU-1628] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/830 中通过修订部署
[JUJU-3552] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/836 中准备 3.1.2.1 发布
3.1.0.1
2023年2月10日星期五
本版本针对 juju 版本 3.1.0,并启用新的秘密后端 API。允许与 3.x 系列的 juju 控制器连接,与不同主版本控制器的连接(例如 2.x、4.x 等)将被取消。
本版本仅使用 Juju 3.1.0 进行测试。
setup.py:调整 py38-310 的 websockets 版本由 @mert-kirpici 在 https://github.com/juju/python-libjuju/pull/731 中
[JUJU-2175] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/774 中在 3.1.0 上删除 juju 2.9 支持
[JUJU-2276] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/777 中为本地 charm 添加系列或基础
[JUJU-2391] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/782 中修复错误的 bases 分析
[JUJU-2401] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/784 中添加发布候选工作流程
[JUJU-2402] 准备夜间 juju edge 测试。由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/785
[JUJU-2237] 从 pylibjuju 中移除 charmstore charm 支持,由 @cderici 在 https://github.com/juju/python-libjuju/pull/786
[JUJU-2426] 支持机密信息,由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/791
[JUJU-2573] 模型部署的基本参数,由 @cderici 在 https://github.com/juju/python-libjuju/pull/798
添加对 juju 3.1.0 的兼容性,由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/799
用良好格式化的版本替换 schemas.json。由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/800
## 新贡献者
@mert-kirpici 在 https://github.com/juju/python-libjuju/pull/731 进行了他们的首次贡献
完整更改日志:https://github.com/juju/python-libjuju/compare/3.0.4…3.1.0.1
3.0.4
10月26日,星期三
[JUJU-2027] 通过资源进行本地刷新,由 @cderici 在 https://github.com/juju/python-libjuju/pull/757
[JUJU-2026] 改进 charm 解析,由 @cderici 在 https://github.com/juju/python-libjuju/pull/761
将所有者信息和数据添加到许可文件中,由 @arturo-seijas 在 https://github.com/juju/python-libjuju/pull/760
## 新贡献者
@arturo-seijas 在 https://github.com/juju/python-libjuju/pull/760 进行了他们的首次贡献
完整更改日志:https://github.com/juju/python-libjuju/compare/3.0.3…3.0.4
3.0.3
2022年10月22日,星期六
等待空闲 arg 类型检查,由 @cderici 在 https://github.com/juju/python-libjuju/pull/741
[JUJU-1970] 修订本地刷新,由 @cderici 在 https://github.com/juju/python-libjuju/pull/742
[JUJU-1984] 为 juju 3.0-rc1-2 更新 facade schemas,由 @cderici 在 https://github.com/juju/python-libjuju/pull/745
[JUJU-1992] 修复 charmhub 系列部署 3.0,由 @cderici 在 https://github.com/juju/python-libjuju/pull/746
[JUJU-2001] 修复 CharmOrigin 3.0 的本地 charm 和 bundles 的基础,由 @cderici 在 https://github.com/juju/python-libjuju/pull/749
[JUJU-2017] 检查从属字段值而不是存在,由 @cderici 在 https://github.com/juju/python-libjuju/pull/751
[JUJU-2018] 更新 2.9.36 facade 和客户端,由 @cderici 在 https://github.com/juju/python-libjuju/pull/752
[JUJU-1705] 确保操作状态正确设置,由 @cderici 在 https://github.com/juju/python-libjuju/pull/753
[JUJU-2019] 对 3.0 进行小修复,由 @cderici 在 https://github.com/juju/python-libjuju/pull/754
完整更改日志:https://github.com/juju/python-libjuju/compare/3.0.2…3.0.3
3.0.2
2022年10月5日,星期三
现在可以通过 model.name 访问模型名称,由 @jack-w-shaw 在 https://github.com/juju/python-libjuju/pull/702
[JUJU-1593] 修复 unit.run() 并更新旧客户端代码,由 @cderici 在 https://github.com/juju/python-libjuju/pull/710
添加 py.typed 标记,由 @sed-i 在 https://github.com/juju/python-libjuju/pull/709
[JUJU-1664] 将 force、no-wait、destroy-storage 参数添加到 app.destroy 中,由 @cderici 在 https://github.com/juju/python-libjuju/pull/714
使用 https 请求访问 snapcraft.io,由 @addyess 在 https://github.com/juju/python-libjuju/pull/715
[JUJU-1680] 添加问题和 PR 模板,由 @cderici 在 https://github.com/juju/python-libjuju/pull/718
[JUJU-1681] 添加由 @cderici 在 https://github.com/juju/python-libjuju/pull/720 提交的 –attach-storage 参数到 model.deploy
[JUJU-1706] 允许等待 wait_for_exact_units=0 由 @cderici 在 https://github.com/juju/python-libjuju/pull/723 提交
[JUJU-1663] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/722 提交,从 python-libjuju 中删除 Python 3.5 支持
[JUJU-1671] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/724 提交,从模型配置中获取 Charmhub url
[JUJU-1733] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/725 提交,重新审视 unitrun 示例
[JUJU-1800] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/729 提交,修订 application.upgrade_charm() (刷新)
[JUJU-1893] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/737 提交,重新审视 charmhub.info()
3.0.1
2022年8月11日星期四
[JUJU-1593] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/706 提交,修复 run_actions 和 facade 的问题
3.0.0
2022年8月9日星期二
切换到语义版本控制。从这次发布开始,至少主版本号与最新的 Juju 支持版本相匹配。因此跳到 3.0.0,因为这个版本支持 Juju 3.0。(这也意味着 python-libjuju <= 2.9.11 只支持到 Juju 2.x)
[JUJU-1439] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/689 提交,为通过 juju 3.0 进行初始修复
[JUJU-1464] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/691 提交,对 3.0 兼容性进行更多修复
[JUJU-1457] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/692 提交,将 3.0 兼容分支合并到 master
由 @sed-i 在 https://github.com/juju/python-libjuju/pull/696 提交,修复条件语句
[JUJU-1534] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/697 提交,修复 model.connect_current()
[JUJU-1542] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/698 提交,修复单元上的运行操作
[JUJU-1577] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/703 提交,为测试用例替换 k8s bundles 为 machine bundles
[JUJU-1528] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/701 提交,添加存储实现
2.9.11
2022年7月11日星期一
由 @sed-i 在 https://github.com/juju/python-libjuju/pull/676 提交,添加 REPL 快速入门子部分
由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/686 提交,测试 onos.charm 的修订
[JUJU-1353] 由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/685 提交,解析 assume 指令
由 @ittner 在 https://github.com/juju/python-libjuju/pull/687 提交,从示例和文档中替换废弃的 juju.loop() 调用
由 @oEscal 在 https://github.com/juju/python-libjuju/pull/664 提交,修复当通道为 None 时的 bundle 运行问题
2.9.10
2022年6月9日星期四
[JUJU-1155] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/679 提交,避免在 k8s bundles 中为 sidecar charms 错误设置 series: kubernetes
[JUJU-1172] 由 @cderici 在 https://github.com/juju/python-libjuju/pull/681 提交,访问 pylibjuju CI
[JUJU-1124] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/678 中避免通过 @cderici 在 https://github.com/juju/python-libjuju/pull/678 传输本地资源文件名
2.9.9
2022年4月26日星期三
[JUJU-835] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/658 中避免在协程中忽略 asyncio 异常
[JUJU-843] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/659 中对 attach-resource 进行检查
[JUJU-858] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/665 中添加提升用户体验的功能,确保在返回时删除应用程序
[JUJU-965] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/666 中添加一些客户端约束验证
通过 @addyess 支持与更晚版本的 websockets 一起使用 python3.10 by https://github.com/juju/python-libjuju/pull/673
通过 @simskij 回滚“避免在协程中忽略 asyncio 异常” by https://github.com/juju/python-libjuju/pull/672
[JUJU-796] 通过 @jack-w-shaw 在 https://github.com/juju/python-libjuju/pull/660 中添加 relate 方法并弃用 add-relation
[JUJU-981] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/671 中在应用升级时从部署的应用程序获取系列而不是元数据
2.9.8
2022年3月21日星期一
[JUJU-567] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/632 中使用 ModelManager 而不是 ControllerFacade 来列出可用的模型
[JUJU-573] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/633 中修复 Juju 2.8.11 的 charm 解析问题
[JUJU-704] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/646 中移除未实现(stuıb)函数
[JUJU-676] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/647 中避免将 charm origin 默认为空字符串
通过 @addyess 在 https://github.com/juju/python-libjuju/pull/650 中部署捆绑包的 charmstore 兼容性
[JUJU-731] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/648 中下属 charm 数单元
[JUJU-769] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/652 中为 2.9.27 添加 facade schemas
[JUJU-771] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/653 中在基于容器的模型上从 add_unit 自动切换到 scale
2.9.7
2022年2月11日星期五
[JUJU-556] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/626 中为 Juju 2.9.24 添加 facade schemas
通过 @addyess 在 https://github.com/juju/python-libjuju/pull/635 中通过 charmstore.entity(…) 提供额外的元数据
2.9.6
2022年1月27日星期四
[JUJU-320] 通过 @SimonRichardson 在 https://github.com/juju/python-libjuju/pull/600 中提供单元公共地址
[JUJU-244] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/601 中添加 attach-resource
[JUJU-140] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/575 中为尚未有单元的应用程序提供 Model.wait_for_idle –
[JUJU-367] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/607 中改进 get_charm_series 以检查本地 charm 的模型系列
[JUJU-366] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/605 中提供连接到现有连接的实用程序
通过 @wolsen 在 https://github.com/juju/python-libjuju/pull/610 中使用 public-address key 而不是 public_address
[JUJU-376] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/613 中为 wait_for_idle 添加支持 scale down
[JUJU-378] 通过 @cderici 在 https://github.com/juju/python-libjuju/pull/614 中提供用于 block_until-ing 的自定义协程的实用程序
由 @dparv 在 https://github.com/juju/python-libjuju/pull/612 中回退到 ‘local-fan’
关于 block_until 相关函数文档的少量评论。由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/617 中
在打印状态中增加额外检查。由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/622 中
2.9.5
2021年12月3日星期五
由 @cderici 在 https://github.com/juju/python-libjuju/pull/560 中删除事件循环参数
由 @cderici 在 https://github.com/juju/python-libjuju/pull/562 中添加 debug-log
模型状态。由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/563 中
将 cffi 版本锁定为 1.14.6 以支持 Python 3.5。由 @cderici 在 https://github.com/juju/python-libjuju/pull/570 中
在模型重置时等待应用程序终止。由 @balbirthomas 在 https://github.com/juju/python-libjuju/pull/572 中
照顾 python3.5。由 @cderici 在 https://github.com/juju/python-libjuju/pull/571 中
部署 charmhub 打包文件。由 @cderici 在 https://github.com/juju/python-libjuju/pull/569 中
2.9.17 的 Facade 架构。由 @SimonRichardson 在 https://github.com/juju/python-libjuju/pull/579 中
带有覆盖层的打包文件。由 @cderici 在 https://github.com/juju/python-libjuju/pull/566 中
一致地获取单元的公共地址。由 @cderici 在 https://github.com/juju/python-libjuju/pull/573 中
[JUJU-158] 在 setup.py 中添加 python3.9。由 @cderici 在 https://github.com/juju/python-libjuju/pull/585 中
[JUJU-157] 添加删除服务的说明。由 @cderici 在 https://github.com/juju/python-libjuju/pull/583 中
通过 @juanmanuel-tirado 添加布尔条目以标准化值。由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/582 中
[JUJU-138] 通过 @cderici 简化 asyncio 任务/事件。由 @cderici 在 https://github.com/juju/python-libjuju/pull/580 中
[JUJU-234] 通过 @cderici 修复任务处理中的小错误。由 @cderici 在 https://github.com/juju/python-libjuju/pull/589 中
确保所有监视器都验证 Id。由 @SimonRichardson 在 https://github.com/juju/python-libjuju/pull/592 中
[JUJU-276] 2.9.19 的 Facade 架构。由 @cderici 在 https://github.com/juju/python-libjuju/pull/594 中
[JUJU-238] 为旧 ClientFacade 支持修复小错误。由 @cderici 在 https://github.com/juju/python-libjuju/pull/593 中
[JUJU-239] 通过 @cderici 添加 debug-log 参数。由 @cderici 在 https://github.com/juju/python-libjuju/pull/595 中
[JUJU-213] 通过 @cderici 添加本地类型 file 资源支持。由 @cderici 在 https://github.com/juju/python-libjuju/pull/590 中
[JUJU-289] 如果支持,在部署时使用提供的系列。由 @jack-w-shaw 在 https://github.com/juju/python-libjuju/pull/596 中
[JUJU-292] 通过 @cderici 更新测试中的 charm 以使用 Charmhub。由 @cderici 在 https://github.com/juju/python-libjuju/pull/597 中
用于在包中描述“应用程序”的旧“services”不再受支持。“applications”可以在 bundles.yaml 中直接替换“services”。
连接对象中的 websocket (ws) 变成了只读属性。
2.9.4
2021年10月12日星期二
Charmhub 部署 charm。由 @SimonRichardson 在 https://github.com/juju/python-libjuju/pull/483 中
由 @sed-i 在 https://github.com/juju/python-libjuju/pull/517 中将 wait_for_active 替换为 wait_for_status
由 @tlm 在 https://github.com/juju/python-libjuju/pull/516 中添加了对 charmhub 部署的资源支持
修复 bug #519 和 #522:由 @davigar15 在 https://github.com/juju/python-libjuju/pull/520 中为包添加本地资源
由 @cderici 在 https://github.com/juju/python-libjuju/pull/527 中修补了一些缺失的 kwargs
由 @cderici 在 https://github.com/juju/python-libjuju/pull/536 中实现了 备份 功能
修复问题 532:由 @davigar15 在 https://github.com/juju/python-libjuju/pull/533 中正确设置 default_series
由 @cderici 在 https://github.com/juju/python-libjuju/pull/541 中修复了一些随机的小错误
由 @cderici 在 https://github.com/juju/python-libjuju/pull/540 中允许 ApplicationFacade 使用非字符串值来设置_config
由 @cderici 在 https://github.com/juju/python-libjuju/pull/542 中跳过了 macaroon 测试问题 534
修复问题 530:由 @cderici 在 https://github.com/juju/python-libjuju/pull/539 中检查控制器是否存在未同步的模型
由 @juanmanuel-tirado 在 https://github.com/juju/python-libjuju/pull/543 中升级了 setup-python 动作
由 @cderici 在 https://github.com/juju/python-libjuju/pull/544 中修复了集成测试
由 @cderici 在 https://github.com/juju/python-libjuju/pull/546 中使 juju/juju.py 重新投入使用
由 @cderici 在 https://github.com/juju/python-libjuju/pull/552 中从本地部署的包中提取资源信息
由 @jnsgruk 在 https://github.com/juju/python-libjuju/pull/558 中修复了包部署代码中的简单错误 self.charm -> self['charm']
由 @cderici 在 https://github.com/juju/python-libjuju/pull/547 中继续修复集成测试
由 @cderici 在 https://github.com/juju/python-libjuju/pull/555 中将配置目录解析逻辑集中到一个地方
由 @cderici 在 https://github.com/juju/python-libjuju/pull/556 中完成了备份功能
2.9.3
2021年8月12日星期一
错误修复 - 修复了“如果 charm 没有系列字段,则默认使用包系列”的问题 #514
2.9.2
2021年6月28日星期一
错误修复 - 修复了“在赋值前引用了元数据”的错误 #509
2.9.1
2021年6月16日星期三
错误修复 - 包暴露的端点缺失 #502
错误修复 - 修复了本地 charm 的系列要求 #504
添加了本地 charm 更新支持 #507
2.9.0
2021年5月27日星期四
更新了 Juju 2.9.0 的外观方法
更新了 Juju 2.9.1 的外观方法
错误修复 - 支持 Juju 客户端代理 (LP#1926595)
错误修复 - 在包中尊重 charm 通道 #496
移除了 Juju 2.2.3 的机器工作区
2.8.6
2021年3月23日星期二
更新了 Juju 2.8.10 的外观方法
错误修复 - 修复了 ScaleApplications 参数名称中的错别字
为 Machines 引入了主机名属性
2.8.5
2021年2月8日星期一
实现了 add_space 和 get_spaces。
更新了外观控制器。
支持已经归档 (.charm 或 .zip) 的本地 charm。
引入了 wait_for_bundle 方法。
错误修复 - 处理 list_offers 结果中的 None
错误修复 - 将库更新到支持 Python 3.9+
2.8.4
2020年10月1日星期四
更新了 Juju 2.8.3 的外观方法
错误修复 - 在销毁模型时添加 force 和 max_wait
错误修复 - 修复了应用程序状态的推导
2.8.3
2020年8月28日星期五
错误修复 - 导出CAAS模型操作界面 (#434)
错误修复 - 允许传递控制器以防止消费读取本地文件系统 (#436)
2.8.2
2020年7月14日星期二
更新Juju 2.8.1的界面方法
向客户端API方法添加文档(使用2.8.1的更改)
错误修复 - 修复应用程序状态报告为未设置 (#430)
错误修复 - 处理网络不可达OSErrors (#426)
2.8.1
2020年5月18日星期一
修复界面调用中的位置参数使用。
向界面类型添加get模拟。
修复在单元上等待SSH的问题。
修复集成测试。
修复tox.ini以使用支持的Python版本。
修复使用下标在匹配中使用正则表达式约束(py36)。
修复界面返回类型文档。
修复具有数组值的模式对象。
修复使用JSON键的下标查找。
添加定义测试。
2.8.0
2020年5月13日星期三
更新Juju 2.8.0的界面方法
修复Python 3.7+的代码生成问题。
嵌套界面定义现在可以正确反序列化(例如,在ApplicationDeploy上的存储)。
忽略缺失的客户端界面,并打印警告 (#382)
添加SCP示例 (#383)
向Controller添加watch_model_summaries方法 (#390)
错误修复 - Model上的make_archive处理符号链接 (#391 #392)
为单元和机器添加SSH支持 (#393)
添加连接高可用性支持 (#402)
错误修复 - 从控制器解析api_endpoints (#406 #407)
2.7.1
2020年1月9日星期四
当尝试连接到模型时,添加了缺失的界面类型。
2.7.0
2020年1月7日星期二
更新Juju 2.7.0的界面方法
修复查询CMR关系时的问题 (#366)
修复捆绑中的存储支持 (#361)
修复报告单元领导者的问题 (#374)
添加AddCloud API支持 (#370)
2.6.3
重构捆绑处理代码,使其更能抵御捆绑更改API的变化。
更新依赖项到最新版本(pyyaml)
2.6.2
2019年8月27日星期三
修复从Juju API服务器返回go interface{}类型(Any类型)时验证问题 (#344)
2.6.1
2019年8月21日星期三
Pylibjuju现在正确验证参数,而不是依赖于默认的位置参数值。
2.6.0
2019年8月14日星期三
更新Juju 2.6.6的界面方法
Pylibjuju的发布现在遵循Juju的发布周期,这还包括将版本号提升到相应版本。
固定API界面。Pylibjuju中的所有界面现在固定到一组更保守的界面版本,以防止与新功能冲突。在连接到控制器或模型后,可以覆盖固定的界面并指定自己的界面版本。
在部署和添加关系时支持跨模型关系(CMR)。此外,在模型上还可以获取有关CMR提供的有关信息。
捆绑中的跨模型关系(CMR)。
能够导出包括覆盖在内的捆绑。
在没有ubuntu用户的情况下手动提供 (#335)
通过SAAS块添加关系时添加远程应用程序。
对捆绑更改API响应应用拓扑排序,使得部署复杂捆绑成为可能。
更新定义类型以包括Juju的最新信息。
关键字参数(代码中的未知字段)现在可在Juju响应中找到。
0.11.7
2019年4月19日星期三
更新Juju 2.6.4的界面方法
支持受信任的捆绑和charms(参见:信任文档)
0.11.6
2019年5月22日星期三
禁用控制器连接上的主机名检查 (#305)
处理由登录RPC返回的RedirectError有效载荷 (#303)
0.11.5
2019年4月1日 星期一
处理未知类型的delta(修复与Juju 2.6控制器连接的问题)(#299)
测试修复(#298)
0.11.4
2019年4月1日 星期一
与注释相关的额外工作。(#290)
检查服务器证书。(#296)
0.11.3
2019年3月13日 星期三
k8s捆绑包不再具有应用程序放置(#293)
如果所有端点失败,则添加连接重试(#288)
支持生成用于模型共享的注册字符串。(#279)
在发布时添加Twine进行分发上传。(#284)
0.11.2
2019年1月16日 星期三
更新Juju 2.5-rc2的facade方法(#281)
添加连接时的重定向测试用例(#275)
在捆绑包中实现App.get_resources和pinned resources (#278)
0.11.1
2018年12月13日 星期四
修复Juju <2.5的子级捆绑包(#277)
0.11.0
2018年12月11日 星期二
针对新Juju版本的更新(#274)
修复revoke_model函数中错误的变量名(#271)
0.10.2
2018年9月18日 星期二
将include_stats设置为false以减少请求时间(#266)
0.10.1
2018年9月17日 星期一
在手动提供测试中重试ssh(#265)
清理lint并添加lint覆盖率到travis配置(#263)
增加charmstore连接的超时时间(#262)
修复《juju连接到驱动程序》消息的日志级别(#258)
0.10.0
2018年8月16日 星期四
修复由于scp额外选项顺序导致的错误(#260)
实现set/get model constraints (#253)
0.9.1
2018年7月16日 星期一
将websockets更新到6.0以修复OS X支持(由于Brew更新到Py3.7)(#254)
0.9.0
2018年6月29日 星期五
python3.7兼容性更新(#251)
在测试中处理is_bootstrapped中的juju未安装(#250)
添加app.reset_config(list)。(#249)
实现model.get_action_status (#248)
修复Python 3.6中的《make client》(#247)
0.8.0
2018年6月14日 星期四
添加支持添加手动(ssh)机器(#240)
向后兼容性修复(#213)
实现model.get_action_output (#242)
修复包含lxd到单元放置的捆绑包的JSON序列化错误(#243)
修复文档中connect_current的引用(#239)
将机器代理状态的工作区包装在版本检查中(#238)
对于juju.unit.run将秒转换为纳秒(#237)
修复test_machines.py::test_status中的偶然间歇性失败(#236)
为Travis定义未使用的juju-zfs lxd存储池(#235)
添加对Application get_actions的支持(#234)
0.7.5
2018年5月18日 星期五
暴露捆绑计划中的错误(#233)
即使在macaroon身份验证的情况下也始终发送auth-tag(#217)
在发送到控制器时内联jsonfile凭证(#231)
0.7.4
2018年4月24日 星期二
始终将标签和空格约束解析为列表(#228)
文档索引改进(#211)
添加doc req以强制使用较新的pymacaroons修复RTD构建
修复构建文档的依赖冲突
0.7.3
2018年2月20日 星期二
完整的macaroon bakery支持(#206)
修复部署本地charm的回归,添加测试用例(#209)
公开机器系列(#208)
自动化测试运行器修复(#205)
0.7.2
2018年2月9日 星期五
支持直接部署bundle YAML文件(而不是仅目录)(#202)
0.7.1
2017年12月18日 星期一
修复model_uuids的遗漏重命名(#197)
0.7.0
2017年12月15日 星期五
修复添加关系时的竞争条件(#192)
修复连接监控测试中的竞争条件(#183)
修复README中的示例(#178)
修复Unit.run期间的罕见挂起(#177)
修复许可问题(#176)
重构模型处理(#171)
重构用户处理,添加get_users (#170)
在添加模型时上传凭证到控制器(#168)
支持捆绑包中的‘applications’键(#165)
改进loop.run()的线程错误处理(#169)
修复使用to_json()时的编码(#166)
修复间歇性测试失败(#167)
0.6.1
2017年9月29日 星期五
修复控制器支持较新facade版本时的失败(#145)
修复测试失败(#163)
修复添加新模型时的SSH密钥处理(#161)
Make Application.upgrade_charm升级资源(#158)
将集成测试扩展到使用稳定的/边缘版本的juju (#155)
将文档移动到ReadTheDocs (https://pythonlibjuju.readthedocs.io/en/latest/)
0.6.0
2017年6月29日,星期四
实现scp功能 (#149)
添加Unit.public_address属性 (#153)
添加在模型上获取/设置配置的支持 (#152)
0.5.3
2017年6月22日,星期四
改进处理已关闭连接的方式 (#148)
可配置的更大最大消息大小 (#146)
0.5.2
2017年6月14日,星期三
修复部署非稳定渠道和显式修订版本 (#144)
0.5.1
2017年6月13日,星期二
更新Juju 2.3 alpha1的架构 (#142)
改进API文档导航和覆盖范围 (#141)
在Model.add_machine文档中添加类型信息 (#138)
0.5.0
2017年6月8日,星期四
添加机器状态属性 (#133)
添加模型上下文管理器 (#128)
实现Application.upgrade_charm方法 (#132)
0.4.3
2017年6月1日,星期四
优雅地接受新的/未知的API字段 (#131)
在ModelInfo中添加新的agent-version字段的支持 (#131)
在安装说明中用pip3替换pip (#129)
从本地charm URL中移除local:-前缀 (#121)
0.4.2
2017年5月10日,星期三
支持(并优先)每个控制器的macaroon文件 (#125)
0.4.1
2017年4月27日,星期三
删除VERSION_MAP并依赖于控制器的外观列表 (#118)
重构连接任务管理以避免取消 (#117)
重构登录代码以更好地处理重定向 (#116)
0.4.0
2017年4月19日,星期三
支持/添加功能/api版本 (#109)
在controller.py中扩展基本用户功能,get_models和destroy (#89)
在Connection中添加Monitor类 (#105)
支持放置列表 (#103)
部署时包含来自存储的资源 (#102)
在访问模型属性时允许下划线到短划线的转换 (#101)
添加到ssh修复的控制台 (#100)
重新生成架构以获取缺失的API
改进错误处理
修复我们没有检查是否收到正确响应的问题。
重试对charmstore的调用并增加超时到5秒
使connect_model和deploy更友好
修复模型名称不包括用户的问题
实现Model.get_status
添加集成测试。
0.3.0
2017年2月27日,星期一
修复放置指令的docstrings。
实现Model.add_machine()
错误修复 - Model.deploy()中的“to”参数损坏
为添加机器、容器以及将charm部署到它们的文档和示例。
当Machine.destroy()阻塞当前协程时,返回只有在机器实际上从远程模型中删除后,这与其他API的工作方式(例如Model.deploy(),Application.add_unit()等)更一致。
在所有未实现的方法存根中引发NotImplementedError,而不是静默传递。
0.2.0
2017年2月16日,星期四
将默认SSH密钥添加到新创建的模型中。
添加循环助手并简化examples/deploy.py
添加支持部署本地charm和包含本地charm路径的包。
添加获取控制器云名称的能力。
错误修复 - 修复Model.destroy_unit()中使用的错误API
在包部署中添加错误检测。
0.1.2
2016年12月22日,星期四
错误修复 - 将文档包含在包中
0.1.1
2016年12月22日,星期四
错误修复 - 将VERSION文件包含在包中
0.1.0
2016年12月21日,星期三
初始发布
项目详情
juju-3.5.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dd9a36330e63acd8f62bf478fd7e385e51f44dc3918e7a67d0593fd054e1e80a |
|
MD5 | 21ceecb7ca79c967184c47c3a05e4fda |
|
BLAKE2b-256 | bf22a39e29950c168f676adca1ac3c41ca4ae9ab4579c44fc99dcdeda1bd68e4 |