|
Packit |
a07778 |
#!/usr/bin/env python3
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
import gi
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
gi.require_version('Gtk', '3.0')
|
|
Packit |
a07778 |
from gi.repository import Gtk
|
|
Packit |
a07778 |
import libvirt
|
|
Packit |
a07778 |
import getopt
|
|
Packit |
a07778 |
import sys
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
gi.require_version('LibvirtGLib', '1.0')
|
|
Packit |
a07778 |
from gi.repository import LibvirtGLib
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
def eventToString(event):
|
|
Packit |
a07778 |
eventStrings = ( "Added",
|
|
Packit |
a07778 |
"Removed",
|
|
Packit |
a07778 |
"Started",
|
|
Packit |
a07778 |
"Suspended",
|
|
Packit |
a07778 |
"Resumed",
|
|
Packit |
a07778 |
"Stopped",
|
|
Packit |
a07778 |
"Saved",
|
|
Packit |
a07778 |
"Restored" )
|
|
Packit |
a07778 |
return eventStrings[event]
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
def myDomainEventCallback1 (conn, dom, event, detail, opaque):
|
|
Packit |
a07778 |
print("myDomainEventCallback1 EVENT: Domain %s(%s) %s" % (dom.name(), dom.ID(), eventToString(event)))
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
def myDomainEventCallback2 (conn, dom, event, detail, opaque):
|
|
Packit |
a07778 |
print("myDomainEventCallback2 EVENT: Domain %s(%s) %s" % (dom.name(), dom.ID(), eventToString(event)))
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
def usage():
|
|
Packit |
a07778 |
print("usage: "+os.path.basename(sys.argv[0])+" [uri]")
|
|
Packit |
a07778 |
print(" uri will default to qemu:///system")
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
def main():
|
|
Packit |
a07778 |
try:
|
|
Packit |
a07778 |
opts, args = getopt.getopt(sys.argv[1:], "h", ["help"] )
|
|
Packit |
a07778 |
except getopt.GetoptError as err:
|
|
Packit |
a07778 |
# print help information and exit:
|
|
Packit |
a07778 |
print(str(err)) # will print something like "option -a not recognized"
|
|
Packit |
a07778 |
usage()
|
|
Packit |
a07778 |
sys.exit(2)
|
|
Packit |
a07778 |
for o, a in opts:
|
|
Packit |
a07778 |
if o in ("-h", "--help"):
|
|
Packit |
a07778 |
usage()
|
|
Packit |
a07778 |
sys.exit()
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
if len(sys.argv) > 1:
|
|
Packit |
a07778 |
uri = sys.argv[1]
|
|
Packit |
a07778 |
else:
|
|
Packit |
a07778 |
uri = "qemu:///system"
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
print("Using uri:" + uri)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
LibvirtGLib.init()
|
|
Packit |
a07778 |
LibvirtGLib.event_register()
|
|
Packit |
a07778 |
vc = libvirt.open(uri)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
#Add 2 callbacks to prove this works with more than just one
|
|
Packit |
a07778 |
vc.domainEventRegister(myDomainEventCallback1,None)
|
|
Packit |
a07778 |
vc.domainEventRegister(myDomainEventCallback2,None)
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
Gtk.main()
|
|
Packit |
a07778 |
|
|
Packit |
a07778 |
if __name__ == "__main__":
|
|
Packit |
a07778 |
main()
|