Blame examples/event-test.py

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