7.4.7. Actions


大多数资源都包括一种操作链接,用于提供不是通过标准 HTTP 方法实现的功能。
<resource>
    ...
    <actions>
        <link rel="start" href="/ovirt-engine/api/collection/resource_id/start"/>
        <link rel="stop" href="/ovirt-engine/api/collection/resource_id/stop"/>
        ...
    </actions>
    ...
</resource>
API 通过 POST 请求调用提供的 URI 的操作。POST 正文需要一个 操作 表示封装通用和任务特定参数。
表 7.6. 常见操作参数
元素 Description
async 如果服务器 立即响应使用 202 Accepted,且操作表示包含 href 链接,则需要轮询完成。
grace_period 以毫秒为单位的宽限期,必须在启动操作前过期。
各个操作及其参数记录在单独的资源类型的文档中。某些参数对于具体操作来说是必需的,它们没有表示有故障 响应
操作还需要 Content-Type: application/xml 标头,因为 POST 请求需要在正文内容中有一个 XML 表示。
当异步启动该操作时,立即 202 Accepted 响应提供一个链接来监控任务的状态:
POST /ovirt-engine/api/collection/resource_id/action HTTP/1.1
Content-Type: application/xml
Accept: application/xml

<action>
    <async>true</async>
</action>

HTTP/1.1 202 Accepted
Content-Type: application/xml

<action id="action_id"
  href="/ovirt-engine/api/collection/resource_id/action/action_id">
    <async>true</async>
    ...
</action>
操作 URI 上的后续 GET 提供异步任务的状态。
表 7.7. 操作状态
状态 Description
待定 任务尚未启动。
in_progress 任务处于操作状态。
complete 任务成功完成。
失败 任务失败。返回的 操作 表示会包含 描述 失败的错误。
任务完成后,会在确定周期内保留该操作。过期后,后续的 GETs 为 301 movesd Permanently 重新重定向到目标资源。
GET /ovirt-engine/api/collection/resource_id/action/action_id HTTP/1.1
Accept: application/xml

HTTP/1.1 200 OK
Content-Type: application/xml

<action id="action_id"
  href="/ovirt-engine/api/collection/resource_id/action/action_id">
    <status>
        <state>pending</state>
    </status>
    <link rel="parent" /ovirt-engine/api/collection/resource_id"/>
    <link rel="replay" href="/ovirt-engine/api/collection/resource_id/action"/>
</action>
操作表示还包括一些由 rel 属性标识的链接:
表 7.8. 操作关系
类型 Description
parent 这个操作的资源的链接。
replay 到原始操作 URI 的链接。发布到此 URI 会导致重新发起操作。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.