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
正文需要一个 操作
表示封装通用和任务特定参数。
元素 | 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
提供异步任务的状态。
状态 | Description |
---|---|
待定 | 任务尚未启动。 |
in_progress | 任务处于操作状态。 |
complete | 任务成功完成。 |
失败 | 任务失败。返回的 操作 表示会包含 描述 失败的错误。 |
任务完成后,会在确定周期内保留该操作。过期后,后续的
GET
s 为 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
属性标识的链接:
类型 | Description |
---|---|
parent | 这个操作的资源的链接。 |
replay | 到原始操作 URI 的链接。发布到此 URI 会导致重新发起操作。 |