mirror of
https://gitlab.com/libvirt/libvirt-python.git
synced 2025-07-17 00:59:36 +03:00
event-test.py: Merge livecycle callbacks
Registering the same function twice using the old domainEventRegister() interface would not work, as the function reference is used for un-registering. But it is not a problem with the new interface domainEventRegisterAny(), as that returns a unique ID. While at it also demonstrate the 'opaque' mechanism. Signed-off-by: Philipp Hahn <hahn@univention.de> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
committed by
Michal Privoznik
parent
d408dc944d
commit
73b5ae581c
@ -499,15 +499,11 @@ def agentLifecycleReasonToString(reason):
|
||||
agentReasons = ( "unknown", "domain started", "channel event", )
|
||||
return agentReasons[reason]
|
||||
|
||||
def myDomainEventCallback1 (conn, dom, event, detail, opaque):
|
||||
print("myDomainEventCallback1 EVENT: Domain %s(%s) %s %s" % (dom.name(), dom.ID(),
|
||||
domEventToString(event),
|
||||
domDetailToString(event, detail)))
|
||||
|
||||
def myDomainEventCallback2 (conn, dom, event, detail, opaque):
|
||||
print("myDomainEventCallback2 EVENT: Domain %s(%s) %s %s" % (dom.name(), dom.ID(),
|
||||
domEventToString(event),
|
||||
domDetailToString(event, detail)))
|
||||
def myDomainEventCallback(conn, dom, event, detail, opaque):
|
||||
print("myDomainEventCallback%d EVENT: Domain %s(%s) %s %s" % (
|
||||
opaque, dom.name(), dom.ID(), domEventToString(event), domDetailToString(event, detail)))
|
||||
|
||||
|
||||
def myDomainEventRebootCallback(conn, dom, opaque):
|
||||
print("myDomainEventRebootCallback: Domain %s(%s)" % (dom.name(), dom.ID()))
|
||||
@ -725,9 +721,9 @@ def main():
|
||||
vc.registerCloseCallback(myConnectionCloseCallback, None)
|
||||
|
||||
#Add 2 lifecycle callbacks to prove this works with more than just one
|
||||
vc.domainEventRegister(myDomainEventCallback1,None)
|
||||
vc.domainEventRegister(myDomainEventCallback, 1)
|
||||
domcallbacks = []
|
||||
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_LIFECYCLE, myDomainEventCallback2, None))
|
||||
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_LIFECYCLE, myDomainEventCallback, 2))
|
||||
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_REBOOT, myDomainEventRebootCallback, None))
|
||||
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_RTC_CHANGE, myDomainEventRTCChangeCallback, None))
|
||||
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_WATCHDOG, myDomainEventWatchdogCallback, None))
|
||||
@ -784,7 +780,7 @@ def main():
|
||||
if not run:
|
||||
return
|
||||
|
||||
vc.domainEventDeregister(myDomainEventCallback1)
|
||||
vc.domainEventDeregister(myDomainEventCallback)
|
||||
|
||||
for id in seccallbacks:
|
||||
vc.secretEventDeregisterAny(id)
|
||||
|
Reference in New Issue
Block a user