commit 0d16918168b476b378e2ea16218fad4a5cd383fb
Author: Radek Novacek <rnovacek(a)redhat.com>
Date: Fri Dec 9 15:31:57 2011 +0100
Add workaround for xen for adding guests too
virt.py | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/virt.py b/virt.py
index b4a62de..ba2d947 100644
--- a/virt.py
+++ b/virt.py
@@ -64,12 +64,21 @@ class Virt:
print "EVENT: Domain %s(%s) %s %s" % (dom.name(), dom.ID(),
eventToString(event), detailToString(event, detail))
if self.changedCallback:
l = self.listDomains()
- # Workaround: when removing machine from xen it is still in list of
- # domains, so we'll remove it manually
+ # Workaround: xen sometimes doesn't update domain list when the event
happens, add/remove the
+ # affected domain manually
if event == libvirt.VIR_DOMAIN_EVENT_UNDEFINED:
uuid = dom.UUIDString()
# Copy the list of domains without deleted domain
l = [d for d in l if d.UUIDString() != uuid]
+ elif event == libvirt.VIR_DOMAIN_EVENT_DEFINED:
+ # Add domain if not already added
+ hasDomain = False
+ for d in l:
+ if d.UUIDString() == uuid:
+ hasDomain = True
+ break
+ if not hasDomain:
+ l.append(d)
self.changedCallback(l)
def domainListChangedCallback(self, callback):
Show replies by date