7.4.7. アクション
ほとんどのリソースには、標準の 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 は、提供された URI への
POST リクエストでアクションを呼び出します。POST の本文には、共通およびタスク固有のパラメーターをカプセル化する アクション 表現が必要です。
| 要素 | 説明 |
|---|---|
async | サーバー が即座に 202 Accepted で応答し、アクション表現に完了のためにポーリングする href リンクが含まれている場合は True。 |
grace_period | アクションが開始する前に期限切れになる必要がある猶予期間(ミリ秒単位)。 |
個別のアクションとそのパラメーターは、個別のリソースタイプのドキュメントに記載されています。特定のアクションで必須となるパラメーターもあれば、
障害 の応答でなければならないパラメーターも示されています。
POST リクエストではボディーコンテンツに XML 表現が必要であるため、アクションには Content-Type: application/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 は、非同期タスクのステータスを示します。
| Status | 説明 |
|---|---|
pending | タスクが起動していません。 |
in_progress | タスクが操作中です。 |
完了 | タスクが正常に完了しました。 |
failed | Task failed.返される アクション 表現には、失敗を説明する 障害 が含まれます。 |
タスクが完了すると、決定しない期間のアクションが保持されます。これの有効期限が切れると、後続の
GETs は 301 Moved Moved Permanently redirected to the target resource になります。
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 属性で識別されるリンクも含まれます。
| タイプ | 説明 |
|---|---|
parent | このアクションのリソースへのリンク。 |
replay | 元のアクション URI へのリンク。この URI に投稿すると、アクションが再度開始されます。 |