diff options
author | Cédric Bosdonnat <cbosdonnat@suse.com> | 2013-12-11 15:39:09 +0000 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2013-12-11 15:39:09 +0000 |
commit | 6ea5be0dd21062a53e896887b162fb303a833d84 (patch) | |
tree | 2f465f5a31b2033f54f8df3d656c96f56657bebb /libvirt-override-virConnect.py | |
parent | 1f180dde63019090f7d03cc30cb7b14cf4586fe3 (diff) | |
download | libvirt-python-6ea5be0dd21062a53e896887b162fb303a833d84.tar.gz |
Added python binding for the new network events API
The new network events code requires manual binding code to
be written.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'libvirt-override-virConnect.py')
-rw-r--r-- | libvirt-override-virConnect.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libvirt-override-virConnect.py b/libvirt-override-virConnect.py index 0beaf9c..c228eb2 100644 --- a/libvirt-override-virConnect.py +++ b/libvirt-override-virConnect.py @@ -198,6 +198,40 @@ except AttributeError: pass + def _dispatchNetworkEventLifecycleCallback(self, net, event, detail, cbData): + """Dispatches events to python user network lifecycle event callbacks + """ + cb = cbData["cb"] + opaque = cbData["opaque"] + + cb(self, virNetwork(self, _obj=net), event, detail, opaque) + return 0 + + def networkEventDeregisterAny(self, callbackID): + """Removes a Network Event Callback. De-registering for a + network callback will disable delivery of this event type""" + try: + ret = libvirtmod.virConnectNetworkEventDeregisterAny(self._o, callbackID) + if ret == -1: raise libvirtError ('virConnectNetworkEventDeregisterAny() failed', conn=self) + del self.networkEventCallbackID[callbackID] + except AttributeError: + pass + + def networkEventRegisterAny(self, net, eventID, cb, opaque): + """Adds a Network Event Callback. Registering for a network + callback will enable delivery of the events""" + if not hasattr(self, 'networkEventCallbackID'): + self.networkEventCallbackID = {} + cbData = { "cb": cb, "conn": self, "opaque": opaque } + if net is None: + ret = libvirtmod.virConnectNetworkEventRegisterAny(self._o, None, eventID, cbData) + else: + ret = libvirtmod.virConnectNetworkEventRegisterAny(self._o, net._o, eventID, cbData) + if ret == -1: + raise libvirtError ('virConnectNetworkEventRegisterAny() failed', conn=self) + self.networkEventCallbackID[ret] = opaque + return ret + def domainEventRegisterAny(self, dom, eventID, cb, opaque): """Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events """ |