diff options
author | Jovanka Gulicoska <jovanka.gulicoska@gmail.com> | 2016-07-28 14:14:13 +0200 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2016-08-02 09:55:56 -0400 |
commit | 58a986984ff0762e9ed3962e70833729c987e4a6 (patch) | |
tree | b37235b61056e9dced93de442761f710d2445268 /libvirt-override-virConnect.py | |
parent | 94a4f35c587bb91c7f1804627c59b2204d0f7205 (diff) | |
download | libvirt-python-58a986984ff0762e9ed3962e70833729c987e4a6.tar.gz |
Python binding for node poll lifecycle events API
Diffstat (limited to 'libvirt-override-virConnect.py')
-rw-r--r-- | libvirt-override-virConnect.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libvirt-override-virConnect.py b/libvirt-override-virConnect.py index b085b07..87c5483 100644 --- a/libvirt-override-virConnect.py +++ b/libvirt-override-virConnect.py @@ -347,6 +347,41 @@ self.storagePoolEventCallbackID[ret] = opaque return ret + def _dispatchNodeDeviceEventLifecycleCallback(self, dev, event, detail, cbData): + """Dispatches events to python user node device + lifecycle event callbacks + """ + cb = cbData["cb"] + opaque = cbData["opaque"] + + cb(self, virNodeDevice(self, _obj=dev), event, detail, opaque) + return 0 + + def nodeDeviceEventDeregisterAny(self, callbackID): + """Removes a Node Device Event Callback. De-registering for a + node device callback will disable delivery of this event type""" + try: + ret = libvirtmod.virConnectNodeDeviceEventDeregisterAny(self._o, callbackID) + if ret == -1: raise libvirtError ('virConnectNodeDeviceEventDeregisterAny() failed', conn=self) + del self.nodeDeviceEventCallbackID[callbackID] + except AttributeError: + pass + + def nodeDeviceEventRegisterAny(self, dev, eventID, cb, opaque): + """Adds a Node Device Event Callback. Registering for a node device + callback will enable delivery of the events""" + if not hasattr(self, 'nodeDeviceEventCallbackID'): + self.nodeDeviceEventCallbackID = {} + cbData = { "cb": cb, "conn": self, "opaque": opaque } + if dev is None: + ret = libvirtmod.virConnectNodeDeviceEventRegisterAny(self._o, None, eventID, cbData) + else: + ret = libvirtmod.virConnectNodeDeviceEventRegisterAny(self._o, dev._o, eventID, cbData) + if ret == -1: + raise libvirtError ('virConnectNodeDeviceEventRegisterAny() failed', conn=self) + self.nodeDeviceEventCallbackID[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) |