* python/virConnect.py: needed for events from the python bindings

by Ben Guthro
daniel
This commit is contained in:
Daniel Veillard 2008-10-31 13:56:47 +00:00
parent ba2dff372c
commit 7d3041aff3
2 changed files with 48 additions and 0 deletions

View File

@ -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
View 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