跳转到: 导航, 搜索

ManagementAPI

总结

为云管理应用程序提供通用的 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
      • 添加/删除/更新/列出
  • 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

----