24.4. メソッド

24.4.1. イベントの検索

events コレクションは、他のリソースコレクションと同様の検索クエリーを提供します。events コレクションを検索する際には、特定のイベント以降のイベントを検索する追加機能があります。これにより、指定されたイベント以降の全イベントに対するクエリーを実行することができます。
イベントからクエリーを実行するには、検索クエリーの前に from パラメーターを追加する必要があります。この from 引数はイベント id コードを参照します。

例24.3 指定したイベント以降のイベントを対象とする検索

GET /api/events;from=1012?search=type%3D30 HTTP/1.1
Accept: application/xml
id="1012" 以降で、type が 30 に指定されたイベントをすべて表示します。
HTTP/1.1 200 OK
Content-Type: application/xml
<events>
    <event id="1018" href="/api/events/1018">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-07-11T14:03:22.485+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
    <event id="1016" href="/api/events/1016">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-07-11T14:03:07.236+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
    <event id="1014" href="/api/events/1014">
        <description>User admin logged in.</description>
        <code>30</code>
        <severity>normal</severity>
        <time>2011-07-11T14:02:16.009+10:00</time>
        <user id="80b71bae-98a1-11e0-8f20-525400866c73"
          href="/api/users/80b71bae-98a1-11e0-8f20-525400866c73"/>
    </event>
</events>

例24.4 特定のイベント重大度を使用した検索

GET /api/events?search=severity>normal HTTP/1.1
Accept: application/xml
重大度が normal を超えるすべてのイベントを表示します。重大度のレベルには normalwarningerror、および alert があります。
HTTP/1.1 200 OK
Content-Type: application/xml
<events>
    <event id="2823" href="/api/events/2823">
        <description>Host Host-05 has time-drift of 36002 seconds while maximum configured value is 300 seconds.</description>
        <code>604</code>
        <severity>warning</severity>
        <time>2015-07-11T14:03:22.485+10:00</time>
        <host href= "/api/hosts/44e52bb2-27d6-4d35-8038-0c4b4db89789" id="44e52bb2-27d6-4d35-8038-0c4b4db89789"/>
        <cluster href= "/api/clusters/00000001-0001-0001-0001-00000000021b" id="00000001-0001-0001-0001-00000000021b"/>
        <origin>oVirt</origin>
        <custom_id>-1</custom_id>
        <flood_rate>30</flood_rate>
    </event>
...
</events>

24.4.2. イベントのページネーション処理

仮想化環境では、一定時間が経過すると、大量のイベントが生成されますが、API は 1 回の検索でデフォルト数のイベントしか表示しません。デフォルト数以上のイベント数を表示するには、検索クエリーに page コマンドを使用すると、API が結果を複数のページに分割します。
以下の検索クエリーは、page 値を sortby と併用して、結果をページネーションするように API に指示します。
sortby time asc page 1
sortby 句は、結果を昇順または降順に順序付けするためのベース要素を定義します。events の検索クエリーの場合は、ベース要素を time に、順序を昇順 (asc) に指定すると、API は仮想化環境の作成以降の全イベントを表示します。
page 条件はページ数を定義します。1 ページは、表示するイベントのデフォルト数に相当します。ページネーションは page 1 から開始します。さらにページを表示するには、page 値を増やします。
sortby time asc page 2
sortby time asc page 3
sortby time asc page 4

例24.5 イベントのページネーション

以下の例は event リソースのページネーションを行います。URL エンコードされた要求は次のとおりです。
GET /api/events?search=sortby%20time%20asc%20page%201 HTTP/1.1
Accept: application/xml
page 値を増やして次の結果ページを表示します。
GET /api/events?search=sortby%20time%20asc%20page%202 HTTP/1.1
Accept: application/xml
from 引数を追加し、開始する id を指定します。
GET /api/events?search=sortby%20time%20asc%20page%202&from=30 HTTP/1.1
Accept: application/xml

24.4.3. イベントの追加

API では、POST 要求でカスタムイベントを events コレクションに追加することができます。新規イベントには、 descriptionseverityorigincustom_id 要素が必要です。カスタムイベントには、イベントに関連するリソースの flood_rateuser idid のコードを含めることも可能です。host および storage_domain 要素に external_status を含めて、外部のヘルスステータスを設定することも可能です。

例24.6 カスタムイベントのイベント一覧への追加

POST /api/events HTTP/1.1
Accept: application/xml
Content-type: application/xml

<event>
  <description>The heat of the host is above 30 Oc</description>
  <severity>warning</severity>
  <origin>HP Openview</origin>
  <custom_id>1</custom_id>
  <flood_rate>30</flood_rate>
  <host id="f59a29cd-587d-48a3-b72a-db537eb21957" >
    <external_status>
       <state>warning</state>
    </external_status>
  </host>
</event>

24.4.4. イベントの削除

イベント一覧からイベントを削除するには、DELETE 要求が必要になります。

例24.7 イベントの削除

DELETE /api/events/1705 HTTP/1.1

HTTP/1.1 204 No Content