OpenStackAPI 1-1
目录
OpenStack API 1.1
当前规范在此处:Draft 7/23
OpenStack API 版本 1.1 将支持一些新特性,并使 OpenStack Compute API 与 Rackspace Cloud Servers API 之间实现对等。您可以在此处找到规范草案:[[ https://docs.openstack.org/api/openstack-compute/1.1/content/ | OpenStack Compute DevGuide WebHelp 最新 (草案)]]
OpenStack API 1.1 中的新特性包括 IPv6 支持、迁移到 OpenStack 命名空间以及对 API 扩展的支持。IPv6 支持是 OpenStack 大规模部署的必要条件。迁移到 OpenStack 命名空间是 OpenStack 项目的要求,以便主要 API 不以 Rackspace 品牌命名。API 扩展将允许开发人员比核心 API 更新更快地进行创新,方法是为开发人员提供一种在代码被 OpenStack 社区整体接受之前将其扩展添加到其本地安装的方法。这应该会刺激 OpenStack 核心的更多特性,因为扩展可以在最初作为扩展实现后提升到核心 API 中。
作为补充说明,一些特性仍然缺失于 1.0 规范中,例如文件注入、服务器元数据和限制。文件注入支持 API 用户在创建时指定服务器上文件的内容,例如添加 ssh 密钥。服务器元数据允许用户提供自定义键值对来描述服务器。最后,限制允许 OpenStack 管理员对用户进行速率限制并提供绝对限制。这允许管理员保护其客户免受恶意或编写不佳的代码的侵害。这些特性将在 OpenStack API 1.1 实现中完成。这些可能超出了此蓝图的范围,直到对这些特性的后端完成一些工作为止。
讨论
请将所有反馈/讨论发送到邮件列表或以下 Etherpad:http://etherpad.openstack.org/osapi1-1
我将维护此页面以反映反馈。- GabeWestmaas
OS API 1.1 特性
IPv6
有几个领域受到 IPv6 地址的影响。目前,这些部分和页码指的是 PDF 规范。
4.1.2.2. 共享 IPv6 地址 具有相同 IPv6 亲和 ID 的服务器可以共享公共和私有 IPv6 IP,用于各种高可用性和负载均衡配置。要启动 HA 服务器,请包含与您希望共享 IP 的服务器的 ipv6AffinityId 属性匹配的可选 ipv6AffinityId 属性。共享相同 ipv6AffinityId 属性的服务器可以共享来自允许地址范围的 IPv6 地址。有关允许的 IPv6 地址范围,请联系您的提供商。
某些资源的 XML 和 json 响应也在发生变化。例如,API 1.0 服务器详细信息包含此 XML 元素
<server id="1234" name="sample-server"
imageId="1" flavorId="1" status="BUILD" progress="60" hostId="e4d909c290d0fb1ca068ffaddf22cbd0">
<metadata>
<meta key="Server Label">Web Head 1</meta>
<meta key="Image Version">2.1</meta>
</metadata>
<addresses>
<public>
<ip addr="67.23.10.132"/>
<ip addr="67.23.10.131"/>
</public>
<private>
<ip addr="10.176.42.16"/>
</private>
</addresses>
</server>
而 1.1 等效项是
<server xmlns="https://docs.openstack.org/compute/api/v1.1"
id="1234" name="sample-server" status="BUILD"
updated="2010-10-10T12:00:00Z"
created="2010-08-10T12:00:00Z"
progress="60" hostId="e4d909c290d0fb1ca068ffaddf22cbd0"
flavorRef="https://servers.api.rackspacecloud.com/v1.1/32278/flavors/1"
imageRef="https://servers.api.rackspacecloud.com/v1.1/32278/images/1">
<metadata>
<meta key="Server Label">Web Head 1</meta>
<meta key="Image Version">2.1</meta>
</metadata>
<addresses>
<network id="public">
<ip version="4" addr="67.23.10.132"/>
<ip version="6" addr="::babe:67.23.10.132"/>
<ip version="4" addr="67.23.10.131"/>
<ip version="6" addr="::babe:4317:0A83"/>
</network>
<network id="private">
<ip version="4" addr="10.176.42.16"/>
<ip version="6" addr="::babe:10.176.42.16"/>
</network>
</addresses>
</server>
扩展
迁移到 OpenStack 命名空间
命名空间正在迁移到 "https://docs.openstack.org/compute/api/v1.1"。
OS API 1.0 特性
关于在 RS API 1.0 中指定但在 OS API 1.0 中缺失的特性的想法和问题。
文件注入
这只是 xs-fileinject 蓝图指定的特性的 API 级别暴露。此特性也在 https://blueprints.launchpad.net/nova/+spec/file-injection-at-creation 中指定,但我们只需要确保在可用时将其包含在 OS API 中。
速率限制
我们需要确定当前状态,似乎已经完成了一些工作,但尚未完成。很可能目前完成的任何工作都反映了全局速率限制,而不是每个项目的限制。需要在项目与帐户之间做出决定,然后我们可以决定如何基于每个帐户/项目设置限制。在此之前,此功能不能在 API 中。应设置一个单独的蓝图。
实例元数据
此功能允许 API 用户指定有关实例的自定义键值对,不要与有关主机的元数据混淆。还需要对该功能进行一些思考。我们是否希望在此处始终提供某些元数据?我们是否希望实例无需 API 密钥即可访问自己的元数据? 元数据蓝图。
错误代码
与 error-codes 蓝图的实施者合作以确保 nova 错误正确传播到 http 错误非常重要。error-codes 蓝图是 OpenStack 蓝图的依赖项,因为 API 必须正确转换错误代码。