mirror of
https://gitlab.com/libvirt/libvirt-python.git
synced 2025-07-22 20:59:34 +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", )
|
agentReasons = ( "unknown", "domain started", "channel event", )
|
||||||
return agentReasons[reason]
|
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):
|
def myDomainEventCallback(conn, dom, event, detail, opaque):
|
||||||
print("myDomainEventCallback2 EVENT: Domain %s(%s) %s %s" % (dom.name(), dom.ID(),
|
print("myDomainEventCallback%d EVENT: Domain %s(%s) %s %s" % (
|
||||||
domEventToString(event),
|
opaque, dom.name(), dom.ID(), domEventToString(event), domDetailToString(event, detail)))
|
||||||
domDetailToString(event, detail)))
|
|
||||||
|
|
||||||
def myDomainEventRebootCallback(conn, dom, opaque):
|
def myDomainEventRebootCallback(conn, dom, opaque):
|
||||||
print("myDomainEventRebootCallback: Domain %s(%s)" % (dom.name(), dom.ID()))
|
print("myDomainEventRebootCallback: Domain %s(%s)" % (dom.name(), dom.ID()))
|
||||||
@ -725,9 +721,9 @@ def main():
|
|||||||
vc.registerCloseCallback(myConnectionCloseCallback, None)
|
vc.registerCloseCallback(myConnectionCloseCallback, None)
|
||||||
|
|
||||||
#Add 2 lifecycle callbacks to prove this works with more than just one
|
#Add 2 lifecycle callbacks to prove this works with more than just one
|
||||||
vc.domainEventRegister(myDomainEventCallback1,None)
|
vc.domainEventRegister(myDomainEventCallback, 1)
|
||||||
domcallbacks = []
|
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_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_RTC_CHANGE, myDomainEventRTCChangeCallback, None))
|
||||||
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_WATCHDOG, myDomainEventWatchdogCallback, None))
|
domcallbacks.append(vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_WATCHDOG, myDomainEventWatchdogCallback, None))
|
||||||
@ -784,7 +780,7 @@ def main():
|
|||||||
if not run:
|
if not run:
|
||||||
return
|
return
|
||||||
|
|
||||||
vc.domainEventDeregister(myDomainEventCallback1)
|
vc.domainEventDeregister(myDomainEventCallback)
|
||||||
|
|
||||||
for id in seccallbacks:
|
for id in seccallbacks:
|
||||||
vc.secretEventDeregisterAny(id)
|
vc.secretEventDeregisterAny(id)
|
||||||
|
Reference in New Issue
Block a user