commit 5c65b9deaee75a8b5fe4f3eebcc6ac5af603be9f
Author: Radek Novacek <rnovacek(a)redhat.com>
Date: Tue Aug 7 10:22:00 2012 +0200
Don't register domain events in one-shot mode.
virt-who.py | 2 +-
virt.py | 9 +++++----
2 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/virt-who.py b/virt-who.py
index 417c59f..eff9015 100644
--- a/virt-who.py
+++ b/virt-who.py
@@ -92,7 +92,7 @@ class VirtWho(object):
if self.options.virtType == "vdsm":
self.virt = VDSM(self.logger)
elif self.options.virtType == "libvirt":
- self.virt = Virt(self.logger)
+ self.virt = Virt(self.logger, registerEvents=not self.options.oneshot)
# We can listen for libvirt events
self.tryRegisterEventCallback()
else:
diff --git a/virt.py b/virt.py
index 4cb4b5e..9a09a04 100644
--- a/virt.py
+++ b/virt.py
@@ -26,7 +26,7 @@ class VirtError(Exception):
class Virt:
""" Class for interacting with libvirt. """
- def __init__(self, logger):
+ def __init__(self, logger, registerEvents=True):
self.changedCallback = None
self.logger = logger
self.virt = None
@@ -34,9 +34,10 @@ class Virt:
libvirt.registerErrorHandler(lambda ctx, error: None, None)
#self.logger.exception(error), None)
try:
self.virt = libvirt.openReadOnly("")
- # Register listener for domain changes
- self.virt.domainEventRegister(self.changed, None)
- event.virtType = self.virt.getType()
+ # Register listener for domain changes if we are not in oneshot mode
+ if registerEvents:
+ self.virt.domainEventRegister(self.changed, None)
+ event.virtType = self.virt.getType()
except libvirt.libvirtError, e:
raise VirtError(str(e))
Show replies by date