2.22. 例: Python を使用したシステムイベントのチェック

Red Hat Enterprise Virtualization Manager は、多くのシステムイベントを記録およびログ記録します。これらのイベントログには、ユーザーインターフェース、システムログファイル、および API を使用してアクセスできます。ovirtsdk ライブラリーは、events コレクションを使用してイベントを公開します。

例2.23 Python を使用したシステムイベントのチェック

以下の例では、events コレクションがリストされます。次の点に注意してください。
  • 利用可能なすべての結果ページが返されるようにするために、list メソッドの query パラメーターを使用しています。デフォルトでは、list メソッドは長さが最大 100 のレコードにデフォルト設定される結果の最初のページのみを返します。
  • イベントが発生した順に出力に示されるよう、結果となるリストは逆順にソートされます。
from ovirtsdk.api import API
from ovirtsdk.xml import params

try:
    api = API (url="https://HOST",
               username="USER@DOMAIN",
               password="PASS",
               ca_file="ca.crt")

    event_list = []
    event_page_index = 1
    event_page_current = api.events.list(query="page %s" % event_page_index)

    while(len(event_page_current) != 0):
        event_list = event_list + event_page_current
        event_page_index = event_page_index + 1
		try:
            event_page_current = api.events.list(query="page %s" % event_page_index)
	    except Exception as ex:
		    print "Error retrieving page %s of list: %s" % (event_page_index, ex)

    event_list.reverse()

    for event in event_list:
        print "%s %s CODE %s - %s" % (event.get_time(),
                                      event.get_severity().upper(),
                                      event.get_code(),
                                      event.get_description())

except Exception as ex:
    print "Unexpected error: %s" % ex
このスクリプトの出力は以下のようになります。ただし、環境の状態によってイベントが異なります。
2012-09-25T18:40:10.065-04:00 NORMAL CODE 30 - User admin@internal logged in.
2012-09-25T18:40:10.368-04:00 NORMAL CODE 153 - VM vm1 was started by admin@internal (Host: Atlantic).
2012-09-25T18:40:10.470-04:00 NORMAL CODE 30 - User admin@internal logged in.