ManagementAPI
- Launchpad 条目: Management API
- 创建时间: 2012年4月2日
- 贡献者: Yehia Beyh, Lyle Wilkinson, Divakar Nandavar
目录
总结
为云管理应用程序提供通用的 Nova 管理 API。该 API 将包含 nova-manage CLI 也提供的功能。目前 OpenStack 管理需要访问命令行才能执行管理操作。这阻碍了应用程序开发者创建 OpenStack 应用程序的能力。
管理 API 提案将增强提议的管理员帐户操作接口 (管理员帐户操作)。
发布说明
有关更多详细信息,请参阅 API 描述。
原理
由于缺乏管理 API,管理只能通过命令行 (CLI) 进行。这阻碍了应用程序开发者改善管理 OpenStack 的用户体验。
目前 Nova 内部存在一些管理 API。但是,这些功能不完整,没有完全架构化,并且仅作为扩展提供。虽然我们最初的方法也将是利用扩展,但管理 API 的目标是更好地组织和架构所有管理功能。
用户故事
- 作为云管理员,我希望能够使用我自己的自定义管理工具集来启动控制器、计算、网络和镜像。
- 作为网络集成商,我希望能够支持添加、修改或删除网络范围。
- 作为云安全管理员,我希望能够从 UI 配置用户、项目、租户、角色、配额。
前提条件
待定
设计
此功能最初提供 REST API 作为 Nova 扩展。API 功能集包括 POST、PUT、GET 和 DELETE 操作(如果适用)。
管理端点
支持与其它 OpenStack API 一致的 RESTful API,位于专门用于管理操作的新端点。
架构化的 API
与其为每个 OpenStack 项目创建独特的(非架构化的)管理 API,不如本提案定义一种适用于所有 OpenStack 项目的 API 模式。
插件和扩展
未来的管理操作可以轻松地根据此处描述的模式添加为插件。
示例
以下示例显示了如何使用 nova-manage CLI 管理 OpenStack 组件。我们建议通过管理 API 支持所有这些功能。
| nova-manage CLI | 提议的管理 API | 提议的相关 API 功能 |
| nova-manage network list | GET .../Manage/Network?name=network_type&Project=name&IPrange=int&Subnet=int | 列出所有符合匹配条件的网络 |
| nova-manage service list | GET ...URI... | PUT, ... |
| nova-manage 未来选项 | GET ...URI... | PUT, ... |
作为参考,以下是应该也通过 API 可用的几个 nova-manage CLI 功能。
- 实例类型管理
- 定义或删除新的实例类型
- 用户/角色管理
- user
- 添加/删除/更新/列出
- user
- project
- 添加/删除/更新/列出
- role
- 添加/删除/更新/列出
- 服务管理
- 服务状态
- 服务列表
- 服务描述
- 禁用服务
- 网络管理
- 网络添加/修改/删除/列出
- Flavor 管理
- 启用/禁用 Flavor
实现
作为 Nova 扩展实现管理 API 将基于 OpenStack 定义的 API 扩展规范。
“网络”的示例扩展 API 如下
| 动词 | URI |
| GET | /Manage/Network?name=network_type&Project=name&IPrange=int&Subnet=int |
| GET | /Manage/Network/detail?name=network_type&Project=name&IPrange=int&Subnet=int |
| GET | /Manage/Network/IPRange |
| DELETE | /Manage/Network/id |
| POST | /Manage/Network |
| PUT | /Manage/Network/id |
“服务”的示例扩展 API 如下
| 动词 | URI |
| GET | /Manage/Service/detail?name=service_name&Project=name&Hostname=Host |
| PUT | /Manage/Service/service_name?option=Disable |
| PUT | /Manage/Service/service_name?option=Enable |
其他选项应遵循相同的模式。
测试/演示计划
这不必在规范接近 Beta 之前添加或完成。
未解决的问题
这应该突出显示需要在进一步的规范中解决的任何问题,而不是规范本身的问题;因为任何存在问题的规范都无法获得批准。
BoF 议程和讨论
在 BoF 期间使用此部分进行笔记;如果将其保留在批准的规范中,请使用它来总结讨论的内容并记录被拒绝的选项。
http://etherpad.openstack.org/Management-API
----