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 domainEventRegisterAn(),
as that returns a unique ID.
While at it also demonstrate the 'opaque' mechanism.
Signed-off-by: Philipp Hahn <hahn@univention.de>
---
examples/event-test.py | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/examples/event-test.py b/examples/event-test.py
index ab1da4a..2dcdee3 100755
--- a/examples/event-test.py
+++ b/examples/event-test.py
@@ -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)
--
2.11.0
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list