探索用于 PowerVC 的 OpenStack REST API

连接 IBM PowerVC Express Edition 的 OpenStack REST API 并简化虚拟资源管理

Comments

IBM Power Virtualization Center Express Edition (PowerVC) 是一个针对 IBM Power 平台的基于 OpenStack 的基础架构即服务云解决方案,旨在简化 Power Systems 环境中的虚拟资源的管理。PowerVC 同时包含 GUI 和 RESTful HTTP 服务(以 API 的形式),这些服务为您的 Power System 执行虚拟管理任务。本文将重点介绍针对 PowerVC Express 版的 REST API,并简要描述每个 API,这会让您对如何通过 Web 服务管理 Power 虚拟资源有所了解。

PowerVC 概述

PowerVC 是一个 IaaS 云解决方案,它构建于 OpenStack 项目技术之上,旨在简化 Power Systems 环境中的虚拟资源的管理。它使用了 OpenStack 的行业标准的、开源的社区接口。

PowerVC 位于控制台风格的接口工具与 IBM SmartCloud 基础架构即服务 (IaaS) 产品之间;工具包括: 

  • IBM Hardware Management Console (HMC),一个使用 BusyBox 的 Linux® 内核,提供了一个标准界面来配置和操作分区系统(也称为 LPAR 或虚拟化系统)和 SMP 系统(比如 Power)。
  • IBM Integrated Virtualization Manager (IVM),一个基于浏览器的工具,允许客户通过选择并单击来将多个虚拟工作负载整合到一个 Power System 中,而无需 HMC 等设备来管理单个系统上的 LPAR。
  • 基于内核的虚拟机 (KVM),一个开源的虚拟机管理程序,为 Windows® 和 Linux 工作负载的运行提供了企业级性能、可伸缩性和安全性。KVM 将 Linux 内核转换为裸机虚拟机管理程序,后者可获得构建于处理器硬件中的硬件虚拟化支持。

PowerVC 向 Power 云资源管理带来了 OpenStack API 的特性。它旨在帮助用户动态地构建一个基础架构,以为软件定义的环境 (SDE) 或云基础架构提供支持。PowerVC 的接口支持管理 Power 硬件上的 RHEL、SLES 和 AIX® 操作系统,允许您注册可用来部署和捕获虚拟机的物理主机、存储提供程序和网络资源。PowerVC 可帮助执行的一些任务包括:

  • 部署镜像来创建新虚拟机
  • 调整卷并将它们附加到这些新镜像
  • 捕获现有的虚拟机
  • 导入现有的虚拟机和卷,以便它们可由 IBM PowerVC 管理
  • 在创建的虚拟机或托管的虚拟机上发起启动/停止/重启/删除操作
  • 监视您环境中的资源的利用率
  • 支持在虚拟机正在运行时迁移它们(或 “热迁移”)

PowerVC 自动捕获以下管理信息:

  • 现有的主机/虚拟机管理程序配置,包括 VIOS 分区信息
  • Power 主机中的现有虚拟机定义的 CPU、内存和 I/O 设置
  • 受支持的存储控制器中现有的卷定义
  • 受支持的 SAN 交换机中现有的区域划分信息

PowerVC 支持捕获和管理一个 VM 镜像库,支持启动 VM 环境的已存储镜像来更轻松、快速地部署该环境,而无需手动重新创建一个特定的环境。通过保存和集中化虚拟镜像,您可以迁移镜像,并快速在它们之上部署应用程序。

还可以创建支持工作负载所需的资源组。

IBM PowerVC 包含在两个版本中:

  • IBM PowerVC Express Edition:针对入门级环境,其中虚拟机主机是由 IVM 管理的 Power 7、Power 7+ 和 Power 8 系统
  • IBM PowerVC Standard Edition:针对企业级虚拟化环境,其中的虚拟机主机是由 HMC 和 Power KVM 管理的 Power 6、Power 7、Power 7+ 和 Power 8 服务器

下一节将介绍 Express Edition 的 OpenStack API 和一个特定于 PowerVC 的验证器 API,以及它们的用途。尽管还有其他一些特定于由 HMC 和 KVM 工具管理的 Power Systems 的 REST API,但本教程不会介绍它们。

OpenStack REST 和 PowerVC 验证器 API

可使用下面这些 OpenStack 组件 API 和 PowerVC 验证器 API,通过 Power System 中的 PowerVC(在本例中为 PowerVC Express Edition)来进行虚拟资源管理。每个 API 按 OpenStack 组件进行分类,并包含该 API 解决的组件和子组件的定义,该 API 的用途,您用来启用该 API 的操作命令,以及每个 API 的请求和响应正文。

组件:Keystone

Keystone 是一个 OpenStack 项目,提供了 Identity、Token、Catalog 和 Policy 服务来专门供 OpenStack 家族中的项目使用。它实现了 OpenStack 的 Identity API。

获取 Keystone 示例请求和响应正文文件

Keystone v3:令牌

令牌是一段用于访问资源的任意文本。每个令牌有一个范围,描述了可使用它访问哪些资源。令牌可随时撤回,而且仅在有限的期限内有效。

  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    用途:在提供了凭据时返回身份验证令牌和服务目录,身份验证令牌通过 X-Subject-Token 返回标头进行返回。
    操作:POST
    正常响应代码:201, 200(OK)
    错误响应代码: identityFault (400, 500, …)、401、404、409、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    用途:验证 X-Subject-Token 标头所指定的身份验证令牌,还返回服务目录。当前的身份验证令牌必须通过 X-Auth-Token 请求标头进行指定。
    操作:GET
    正常响应代码:200(OK), 203
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    用途:快速验证身份验证令牌。没有服务目录。返回 204 表示令牌有效。
    操作:HEAD
    正常响应代码:204
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
    示例响应正文:此操作不返回响应正文。
  • https://<powervc-ip>/powervc/openstack/identity/v3/auth/tokens
    用途:立即让访问令牌失效。
    操作:DELETE
    正常响应代码:204
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
    示例响应正文:此操作不返回响应正文。

Keystone v3:用户

您可以使用这些 API 获取 keystone 用户列表和关联的组:

  • https://<powervc-ip>/powervc/openstack/identity/v3/users
    用途:获取用户列表。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/users/user_id
    用途:获取一个特定的用户。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/users/user_id/groups
    用途:列出该用户所属的组。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)

Keystone v3:组

您可以使用这些 API 获取 keystone 组列表和关联的用户:

  • https://<powervc-ip>/powervc/openstack/identity/v3/groups
    用途:获取 keystone 组的列表。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/groups/group_id
    用途:获取一个特定的组。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/groups/group_id/users
    用途:列出属于指定的组的用户。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)

Keystone v3:IBM 角色

角色是用户在执行一组特定的操作时呈现出的个性。一个角色包含一组权利和特权。承担该角色的用户继承这些权利和特权。

  • https://<powervc-ip>/powervc/openstack/identity/v3/ibm-roles/users
    用途:获取拥有 PowerVC 角色权限的用户列表。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)
  • https://<powervc-ip>/powervc/openstack/identity/v3/ibm-roles/groups
    用途:获取拥有 PowerVC 角色权限的组列表。
    操作:GET
    正常响应代码:200
    错误响应代码:identityFault (400, 500, …)、badRequest (400)、unauthorized (401)、forbidden (403)、badMethod (405)、overLimit (413)、serviceUnavailable (503)、itemNotFound (404)

组件:Nova

Nova 是 OpenStack Compute 的项目名称,是一个云计算结构控制器,也是 IaaS 系统的主要部分。它管理计算资源的生命周期和操作。

获取 Nova 示例请求和响应正文文件

Nova 服务器

可以使用这些 API 来管理虚拟服务器:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers
    用途:创建一个新的虚拟服务器或虚拟机。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers
    用途:获取虚拟服务器列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/detail
    用途:获取所有虚拟服务器的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id
    用途:获取一个指定的虚拟服务器的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id
    用途:删除一个指定的虚拟服务器。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/action
    用途:调整指定的服务器。在请求的正文中指定 resize 操作。
    用途:确认一个即将执行的调整操作。在请求的正文中指定 confirmResize 操作。
    用途:将一个服务器实时迁移到新主机,而不必重新启动。在请求的正文中指定 os-migrateLive 操作。
    用途:停止一个运行的服务器,将它的状态更改为 STOPPED。在请求的正文中指定 os-stop 操作。
    用途:启动一个停止的服务器,将它的状态更改为 ACTIVE。在请求的正文中指定 os-start 操作。
    用途:重新启动指定的服务器。在请求的正文中指定 reboot 操作。
    用途:捕获虚拟机来创建新镜像。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)

Nova 卷附加

可使用这些 API 将存储卷附加到虚拟服务器并与其分离:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments
    用途:将一个卷附加到指定的服务器。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments
    用途:列出指定的服务器上附加的卷。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments/attachment_id
    用途:列出指定的卷附加 ID 的卷详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/servers/server_id/os-volume_attachments/attachment_id
    用途:将指定的卷与指定的服务器分离。
    操作:DELETE
    正常响应代码:No Content (204)、202(Accepted)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文

Nova 扩展

可以获取服务器上所有可用的扩展的列表和详细信息:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/extensions
    用途:列出所有可用的扩展。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/extensions/{alias}
    用途:获取一个特定扩展的详细信息。扩展使在 API 中引入新特性时无需版本更改,它们可用于引入特定于供应商的功能。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

Nova 风格 (flavor)

可使用这些 API 管理虚拟服务器风格 (flavor)(定义 RAM 大小、磁盘、核心数量等的虚拟硬件模板):

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors
    用途:创建一个新风格。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors
    用途:获取风格列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/detail
    用途:获取风格列表及详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/detail/flavor_id
    用途:获取指定的风格的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/detail/flavor_id
    用途:Deletes the specified flavor ID.
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文

额外的 Nova 风格规格

可用于管理现有虚拟服务器风格的额外规格(比如设置虚拟处理器或内存的最小和最大值,设置专用或共享的处理器)。

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs
    用途:列出指定风格的额外规格或键。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs
    用途:创建指定风格的额外规格或键。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs/key_id
    用途:获取指定的键的值。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/flavors/flavor_id/os-extra_specs/key_id
    用途:按键删除一个指定的额外规格。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文

Nova 主机

向 PowerVC 中注册和取消注册 Power 主机。

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts
    用途:列出所有主机。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/host_name
    用途:描述一个指定的主机。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts
    用途:注册一个新的计算主机。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/host_name
    用途:取消注册一个计算主机。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/host_name/update-registration
    用途:重新注册一个计算主机。
    操作:PUT
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)

Nova 虚拟机管理程序

可使用这些 API 获取 PowerVC 所管理的服务器的虚拟机管理程序信息:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors
    用途:列出每个服务器的虚拟机管理程序信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors/detail
    用途:列出 OpenStack 安装所管理的虚拟机管理程序的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors/hypervisor_id
    用途:提供特定的虚拟机管理程序的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hypervisors/hypervisor_id/servers
    用途:列出虚拟机管理程序服务器或虚拟机。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

Nova 镜像

可以使用这些 API 来管理虚拟服务器镜像:

  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images
    用途:列出所有镜像。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images/detail
    用途:列出所有镜像及其详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images/image_id
    用途:列出指定的镜像的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/images/image_id
    用途:删除指定的镜像。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文

Nova 限制

可以使用此 API 来获取为用户帐户配置的限制的详细信息:

  • https://<powervc-ip>/powervc/openstack/image/v2/tenant_id/limits
    用途:返回帐户的当前限制。
    操作:GET
    正常响应代码:OK (200), 203
    错误响应代码:Not Found (404)、Server Error (500)

Nova 放置策略

可以使用这些 API 来获取放置策略列表和修改它们的属性:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/ego/policy/placement
    用途:列出所有策略。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/ego/policy/placement/policy_id
    用途:列出一个特定的策略。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/ego/policy/placement/policy_id
    用途:修改特定策略的可编辑属性。
    操作:PUT
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)

Nova 键对

可以使用这些 API 来管理与虚拟服务器的用户帐户有关联的键对:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs
    用途:列出与帐户有关联的键对。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs
    用途:生成或导入一个键对。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs/keypair_name
    用途:删除某个指定的键对。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-keypairs/keypair_name
    用途:显示与帐户有关联的键对。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

Nova 虚拟服务器受理

为了扩大管理范围,您可以将在 PowerVC 外部创建的虚拟服务器导入 PowerVC 中。

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/hostname/all-servers
    用途:获取一个给定主机上的所有虚拟服务器的列表(无论是否托管)。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/hostname/onboard
    用途:导入给定主机的一个或多个虚拟机,使它们可由 PowerVC 管理。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-hosts/hostname/unmanage
    用途:删除一个主机的一个或多个虚拟机,以便它们不再由 PowerVC 管理。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Server Error (500)

Nova 主机共享以太网适配器

可使用这些 API,列出分配给单一主机、所有主机或拥有相同的 UUID 和 VLAN ID 的共享以太网适配器:

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas
    用途:列出所有主机 SEA。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas/host_id
    用途:列出给定主机上特定的主机 SEA。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas/host_id?vlanid=<VLANID>
    用途:列出传入到某个 VLAN ID 中的特定的主机 SEA。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas?vlanid=<VLANID>
    用途:列出传入到某个 VLAN ID 中、与一个 SEA 的 PVID 匹配的所有主机 SEA。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas?network_id=<network_id>
    用途:列出传入一个网络 UUID 中的所有主机 SEA。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-seas?network_id=<network_id>&vlanid=<VLAN ID>
    用途:列出传入一个网络 UUID 和 VLAN ID 中的所有主机 SEA。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

Nova 主机网络映射

可以使用这些 API 来获取现有网络映射的列表,以及创建和更新主机上的网络映射。

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping
    用途:列出网络映射。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping?network_id=<network_id>
    用途:列出某个网络 ID 的网络映射。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping/host_id
    用途:列出某个给定主机的网络映射。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping/host_id?network_id=<network_id>
    用途:列出一个给定主机和网络 ID 的网络映射。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping
    用途:创建一个网络映射。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
    示例响应:200(OK)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-mapping
    用途:修改网络映射。
    操作:PUT
    正常响应代码:No Content (204)、200(OK)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    示例响应:200(OK)

Nova 主机网络放置

您可以获取指定主机的可能的网络布局列表,并获取可支持指定的 VLAN 布局的主机列表。

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-placement
    用途:列出所有主机的可能的网络布局。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-placement?network_id=<network_id>
    用途:列出可支持指定的网络的主机。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/host-network-placement/host_name
    用途:列出指定的主机的可能的网络布局。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

Nova 使用

可以使用这些 API 来获取每个主机和每个用户帐户的使用统计信息(比如 CPU、内存和网络使用):

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-simple-tenant-usage
    用途:查看所有租户的使用情况。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-simple-tenant-usage/tenant_id
    用途:获取某个租户的使用情况。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

Nova 配额

可以获取为用户帐户分配的配额信息并更新它。

  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-quota-sets/tenant_id
    用途:显示租户的配额。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-quota-sets/tenant_id
    用途:更新租户的配额。
    操作:PUT
    正常响应代码:No Content (204)、OK(200)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/compute/v2/tenant_id/os-quota-sets/tenant_id/defaults
    用途:获取默认配额。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)

组件:Cinder

Cinder 是一个管理块存储的 OpenStack 项目。

获取 Cinder 示例请求和响应正文文件

Cinder 卷

可以使用这些 API 来管理存储卷:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes
    用途:创建一个卷。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes
    用途:查看一个卷列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/detail
    用途:查看一个卷列表及其详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes?data_volumes
    用途:查看一个数据卷列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/detail?data_volumes
    用途:查看一个数据卷列表及其详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    用途:查看单个卷的所有信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    用途:更新一个特定的卷。
    操作:PUT
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    用途:删除一个卷。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500) 没有请求或响应正文
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id/restricted_metadata
    用途:查看卷的有限元数据。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id/restricted_metadata
    用途:修改卷的有限有数据。
    操作:PUT
    正常响应代码:200(OK)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume-id/restricted_metadata/{key}
    用途:从卷有限元数据中删除一个卷。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500) 没有请求或响应正文

Cinder 主机

可使用这些 API 在 PowerVC 中配置存储提供程序:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/connect
    用途:返回存储池的列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts
    用途:注册一个新的 cinder 主机。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts
    用途:列出所有 cinder 主机。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name
    用途:描述一个特定的主机。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name
    用途:取消注册一个 cinder 主机。
    操作:DELETE
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
    没有请求或响应正文
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/update-registration
    用途:重新注册一个 cinder 主机。
    操作:PUT
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)

Cinder 卷受理

可以使用这些 API 来导入未由 PowerVC 管理的存储卷:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/all-volumes
    用途:提供一个给定的存储提供程序上的所有卷的列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/onboard
    用途:管理来自一个存储提供程序的现有卷。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/os-hosts/host_name/unmanage
    用途:取消管理当前由 PowerVC 管理的卷。
    操作:POST
    正常响应代码:No Content (204)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)

Cinder 存储提供程序

可以获取 PowerVC 中的现有存储提供程序的指标和状态。

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/storage-providers
    用途:提供存储提供程序的状态/指标列表。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/storage-providers/detail
    用途:获取所有存储提供程序的状态/指标详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/storage-providers/provider_id
    用途:提供一个特定的存储提供程序的状态/指标详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)

Cinder 卷扩展

可以使用此 API 来调整存储卷:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/volumes/volume_id
    用途:在附加的卷的状态为 In-Use 时扩展/调整该卷。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)

Cinder 扩展

可以获取存储卷上所有可用的扩展的列表和详细信息:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/extensions
    用途:列出可用的扩展。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/{alias}
    用途:获取指定的扩展的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)

Cinder 类型

可以使用这些 API 来管理存储卷类型:

  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types
    用途:创建一种卷类型。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types
    用途:列出卷类型。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id
    用途:显示一种指定的卷类型的信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id
    用途:更新一种卷类型。
    操作:PUT
    正常响应代码:200、202、204
    错误响应代码:403
  • https://<powervc-ip>/powervc/openstack/volume/v1/tenant_id/types/volume_type_id
    用途:删除一种卷类型。
    操作:DELETE
    正常响应代码:202、204
    错误响应代码:403
    此操作不返回响应正文。

组件:Glance

Glance 是一个镜像服务,它提供了虚拟磁盘镜像的发现、注册和交付服务。

获取 Glance 示例请求和响应正文文件。

Glance 镜像

可以使用这些 RESTful 服务来管理镜像(创建/删除/更新/列出/获取详细信息/下载):

  • https://<powervc-ip>/powervc/openstack/image/v2/images
    用途:创建一个镜像。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/image/v2/images
    用途:获取租户能够访问的镜像列表。
    操作:GET
    正常响应代码:OK (200)、Accepted (202)
    错误响应代码:Not Found (404)、Server Error (500)、Forbidden (403)
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id
    用途:获取指定的镜像的详细信息。
    操作:GET
    正常响应代码:OK (200)、Accepted (202)
    错误响应代码:Not Found (404)、Server Error (500)、Forbidden (403)
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id
    用途:更新某个指定的镜像。
    操作:PATCH
    正常响应代码:200
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id
    用途:删除某个指定的镜像。
    操作:DELETE
    正常响应代码:204
    错误响应代码:403
    此操作不返回响应正文。
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id/file
    用途:下载二进制镜像数据。
    操作:GET
    正常响应代码:200、204
    此操作不返回响应正文。
  • https://<powervc-ip>/powervc/openstack/image/v2/images/image_id/file
    用途:上传二进制镜像数据。
    操作:PUT
    正常响应代码:204
    此操作不返回响应正文。

组件:Neutron

Neutron 是 OpenStack 的网络管理服务。

获取 Neutron 示例请求和响应正文文件。

Neutron 网络

可使用这些 RESTful 管理网络(创建/删除/ 修改/列出):

  • https://<powervc-ip>/powervc/openstack/network/v2/networks
    用途:创建一个新 Neutron 网络。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/networks/network_id
    用途:更新指定的网络。
    操作:PUT
    正常响应代码:200(OK)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/networks/network_id
    用途:删除指定的网络。
    操作:DELETE
    正常响应代码:204
    错误响应代码:403
    此操作不返回响应正文。
  • https://<powervc-ip>/powervc/openstack/network/v2/networks
    用途:提供 Neutron 中定义的所有网络的摘要。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/networks/network_id
    用途:列出指定的网络的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)

Neutron 子网

可使用这些 RESTful 服务管理网络子网:

  • https://<powervc-ip>/powervc/openstack/network/v2/subnets
    用途:在指定的网络上创建一个子网。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets/subnet_id
    用途:更新指定的子网。
    操作:PUT
    正常响应代码:200(OK)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets/subnet_id
    用途:删除指定的子网。
    操作:DELETE 正常响应代码:204
    错误响应代码:403
    此操作不返回响应正文。
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets
    用途:列出提交请求的租户能够访问的所有子网。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/subnets/subnet_id
    用途:提供指定的子网的详细信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)

Neutron 端口

可以使用这些 RESTful 服务来管理网络端口:

  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports
    用途:在指定的网络上创建一个端口。
    操作:POST
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports
    用途:列出租户能够访问的端口。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports/port_id
    用途:显示某个指定的端口的信息。
    操作:GET
    正常响应代码:OK (200)
    错误响应代码:Bad Request (400)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports/port_id
    用途:更新一个指定的端口。
    操作:PUT
    正常响应代码:200(OK)
    错误响应代码:Bad Request (400)、Not Found (404)、Server Error (500)
  • https://<powervc-ip>/powervc/openstack/network/v2/tenant_id/ports/port_id
    用途:删除某个指定的端口。
    操作:DELETE
    正常响应代码:204
    错误响应代码:403
    此操作不返回响应正文。

PowerVC 服务组件:Validator

此服务验证现有的 PowerVC 环境,显示可能对更正所配置的 PowerVC 环境有用的结果。

获取 Validator 示例请求和响应正文文件。

  • https://<powervc-ip>/powervc/openstack/validation/v1/validation
    用途:开始运行验证。
    操作:GET
    正常响应代码:OK (200)、Accepted (202)(当验证在后端启动时)
    错误响应代码:Not Found (404)、Server Error (500)、Forbidden (403)(当验证已在后台运行时)
  • https://<powervc-ip>/powervc/openstack/validation/v1/validation/result
    用途:显示来自上一次完成的验证的结果。
    操作:GET
    正常响应代码:OK (200)、Accepted (202)(当验证在后端启动时)
    错误响应代码:Not Found (404)、Server Error (500)、Forbidden (403)(当验证已在后台运行时)

结束语

希望这篇通过 PowerVC Express Edition 使用 OpenStack 虚拟资源管理 API 的快速参考指南,可帮助使您的云管理任务变得更轻松、更快捷。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, Open source, DevOps, Linux, AIX and UNIX
ArticleID=1013601
ArticleTitle=探索用于 PowerVC 的 OpenStack REST API
publish-date=08202015