mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
* python/virConnect.py: needed for events from the python bindings
by Ben Guthro daniel
This commit is contained in:
parent
ba2dff372c
commit
7d3041aff3
@ -1,3 +1,8 @@
|
||||
Fri Oct 31 14:55:46 CET 2008 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* python/virConnect.py: needed for events from the python bindings
|
||||
by Ben Guthro
|
||||
|
||||
Fri Oct 31 14:04:52 CET 2008 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/xm_internal.c: add minimum domain memory size check for Xen
|
||||
|
43
python/virConnect.py
Normal file
43
python/virConnect.py
Normal file
@ -0,0 +1,43 @@
|
||||
def __del__(self):
|
||||
try:
|
||||
for cb,opaque in self.domainEventCallbacks.items():
|
||||
del self.domainEventCallbacks[cb]
|
||||
self.domainEventCallbacks = None
|
||||
libvirtmod.virConnectDomainEventDeregister(self._o, self)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
if self._o != None:
|
||||
libvirtmod.virConnectClose(self._o)
|
||||
self._o = None
|
||||
|
||||
def domainEventDeregister(self, cb):
|
||||
"""Removes a Domain Event Callback. De-registering for a
|
||||
domain callback will disable delivery of this event type """
|
||||
try:
|
||||
del self.domainEventCallbacks[cb]
|
||||
if len(self.domainEventCallbacks) == 0:
|
||||
ret = libvirtmod.virConnectDomainEventDeregister(self._o, self)
|
||||
if ret == -1: raise libvirtError ('virConnectDomainEventDeregister() failed', conn=self)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def domainEventRegister(self, cb, opaque):
|
||||
"""Adds a Domain Event Callback. Registering for a domain
|
||||
callback will enable delivery of the events """
|
||||
try:
|
||||
self.domainEventCallbacks[cb] = opaque
|
||||
except AttributeError:
|
||||
self.domainEventCallbacks = {cb:opaque}
|
||||
ret = libvirtmod.virConnectDomainEventRegister(self._o, self)
|
||||
if ret == -1: raise libvirtError ('virConnectDomainEventRegister() failed', conn=self)
|
||||
|
||||
def dispatchDomainEventCallbacks(self, dom, event):
|
||||
"""Dispatches events to python user domain event callbacks
|
||||
"""
|
||||
try:
|
||||
for cb,opaque in self.domainEventCallbacks.items():
|
||||
cb(self,dom,event,opaque)
|
||||
return 0
|
||||
except AttributeError:
|
||||
pass
|
Loading…
x
Reference in New Issue
Block a user