跳转到主要内容

oaktreemodel的基本protobuf数据模型

项目描述

oaktree是一个OpenStack云的gRPC接口,它本质上是互操作的和多云感知的。

oaktreemodel是protobuf定义以及从该定义生成的库和/或代码,这使得所有语言的开发人员都能够与gRPC系统交互,而无需在任何地方开发Python依赖项。

开始时,支持Go、C++和Python。

使用Go,生成的文件被提交到git仓库,因为Go依赖项就是这样工作的。

使用C++和Python,则不是这样,因为我们期望消费单元是一个构建的库以及C++的头文件或Ruby的PyPI包。在添加更多语言结构时,它们很可能会遵循C++/Python的方法,而不是Go的方法 - 但每个语言的决策将在这里进行报告。

关于API兼容性的说明

简而言之 - 升级oaktreemodel绝不应对最终用户产生负面影响。

在切出1.0.0版本之前,请考虑这个仓库中的所有内容都可能随时更改,无需通知或考虑向后兼容性的破坏。这是对几件事情的新方法,我们很可能会在几个方面犯一些错误。

1.0.0版本之后,oaktree和oaktreemodel将遵守shade本身的向后兼容性承诺。也就是说,永远不会发布破坏向后兼容性的版本,应该始终可以安全地将最新版本部署到生产环境中。实际上,即使是运行较旧稳定版本的OpenStack的人,建议也运行最新的oaktree,以便可以获取最新的跨兼容性更改。

关于实现

oaktreemodel的意图是在客户端交互的protobuf描述的基础上存在多个实现。实际上,从这个仓库生成并发布的代码在gRPC基础上是相当低级别的,所以几乎可以肯定,每种语言都将希望在具有面向最终用户UI的其他库的上下文中消费此代码。

绝对不是意图存在多个服务器端实现。

原因是,至少到目前为止,shade库中的业务逻辑非常广泛且复杂。它处理底层云中的数百万种特殊情况。oaktree服务器应该能够与它们部署的云进行通信,并且还能够与其他OpenStack云进行通信,无论是与远程oaktree通信还是直接与远程OpenStack API通信。

应该将gRPC中的客户端接口视为全面且尽可能详细地描述接口。对于想要oaktree服务器的人,请使用实际的oaktree。

构建

首先,您需要一些依赖项

pip install bindep
apt-get install $(bindep -b)
pip install -f requirements.txt
pip install grpcio-tools
go get -u github.com/golang/protobuf/protoc-gen-go

然后您可以构建代码

autoreconf -fi
./configure
make

项目详情


下载文件

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

源分布

oaktreemodel-0.0.2.tar.gz (23.6 kB 查看散列)

上传时间:

构建分布

oaktreemodel-0.0.2-py2.py3-none-any.whl (24.6 kB 查看散列)

上传时间: Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面