2.22. 实例:使用 Python 检查系统事件
Red Hat Enterprise Virtualization Manager 会记录许多系统事件,这些系统事件可以通过用户接口界面、系统日志文件和 API 进行访问。ovirtsdk 库使用
events
集合来访问事件。
例 2.23. 使用 Python 检查系统事件
在这个实例中,
events
集合被列出。请注意:
- 使用
list
方法中的query
参数确保了所有结果页都会被返回。在默认的情况下,list
方法只返回结果的第 1 页(这个页默认包括最多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.