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.