From ac532dd37dcca7f7b43dda56516aa39a69b3401c Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 30 Jul 2012 17:30:42 +0100 Subject: Bind connection close callback APIs to python binding Add code in the python binding to cope with the new APIs virConnectRegisterCloseCallback and virConnectUnregisterCloseCallback. Also demonstrate their use in the python domain events demo Signed-off-by: Daniel P. Berrange --- libvirt-override-virConnect.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'libvirt-override-virConnect.py') diff --git a/libvirt-override-virConnect.py b/libvirt-override-virConnect.py index cb8d892..84d6cc3 100644 --- a/libvirt-override-virConnect.py +++ b/libvirt-override-virConnect.py @@ -287,3 +287,26 @@ retlist.append(virSecret(self, _obj=secret_ptr)) return retlist + + def _dispatchCloseCallback(self, reason, cbData): + """Dispatches events to python user close callback""" + cb = cbData["cb"] + opaque = cbData["opaque"] + + cb(self, reason, opaque) + return 0 + + + def unregisterCloseCallback(self): + """Removes a close event callback""" + ret = libvirtmod.virConnectUnregisterCloseCallback(self._o) + if ret == -1: raise libvirtError ('virConnectUnregisterCloseCallback() failed', conn=self) + + def registerCloseCallback(self, cb, opaque): + """Adds a close event callback, providing a notification + when a connection fails / closes""" + cbData = { "cb": cb, "conn": self, "opaque": opaque } + ret = libvirtmod.virConnectRegisterCloseCallback(self._o, cbData) + if ret == -1: + raise libvirtError ('virConnectRegisterCloseCallback() failed', conn=self) + return ret -- cgit