Blame examples/event-test.py

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()