From 7eaab4a6c25291e44a603c696151a2817d95986e Mon Sep 17 00:00:00 2001 From: Jovanka Gulicoska Date: Tue, 14 Jun 2016 23:22:23 +0200 Subject: Python binding for storage pool lifecycle events API Code matches the network event API implementation --- libvirt-override-virConnect.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'libvirt-override-virConnect.py') diff --git a/libvirt-override-virConnect.py b/libvirt-override-virConnect.py index 0f76c59..1aaa586 100644 --- a/libvirt-override-virConnect.py +++ b/libvirt-override-virConnect.py @@ -302,6 +302,41 @@ self.domainEventCallbackID[ret] = opaque return ret + def _dispatchStoragePoolEventLifecycleCallback(self, pool, event, detail, cbData): + """Dispatches events to python user storage pool + lifecycle event callbacks + """ + cb = cbData["cb"] + opaque = cbData["opaque"] + + cb(self, virStoragePool(self, _obj=pool), event, detail, opaque) + return 0 + + def storagePoolEventDeregisterAny(self, callbackID): + """Removes a Storage Pool Event Callback. De-registering for a + storage pool callback will disable delivery of this event type""" + try: + ret = libvirtmod.virConnectStoragePoolEventDeregisterAny(self._o, callbackID) + if ret == -1: raise libvirtError ('virConnectStoragePoolEventDeregisterAny() failed', conn=self) + del self.storagePoolEventCallbackID[callbackID] + except AttributeError: + pass + + def storagePoolEventRegisterAny(self, pool, eventID, cb, opaque): + """Adds a Storage Pool Event Callback. Registering for a storage pool + callback will enable delivery of the events""" + if not hasattr(self, 'storagePoolEventCallbackID'): + self.storagePoolEventCallbackID = {} + cbData = { "cb": cb, "conn": self, "opaque": opaque } + if pool is None: + ret = libvirtmod.virConnectStoragePoolEventRegisterAny(self._o, None, eventID, cbData) + else: + ret = libvirtmod.virConnectStoragePoolEventRegisterAny(self._o, pool._o, eventID, cbData) + if ret == -1: + raise libvirtError ('virConnectStoragePoolEventRegisterAny() failed', conn=self) + self.storagePoolEventCallbackID[ret] = opaque + return ret + def listAllDomains(self, flags=0): """List all domains and returns a list of domain objects""" ret = libvirtmod.virConnectListAllDomains(self._o, flags) -- cgit v1.2.1