[Kimchi-devel] [PATCH] Avoid useless libvirt error log produced by featuretests

apporc appleorchard2000 at gmail.com
Tue Jan 21 07:23:20 UTC 2014


When running feature tests, we get bunch of error messages as below:

*** Running feature tests ***
libvirt: Domain Config error : internal error unknown protocol type 'http'
libvirt: Domain Config error : internal error unknown protocol type 'https'
libvirt: Domain Config error : internal error unknown protocol type 'ftp'
libvirt: Domain Config error : internal error unknown protocol type 'ftps'
libvirt: Domain Config error : internal error unknown protocol type 'tftp'
*** Feature tests completed ***

By replacing default error handler of libvirt, this patch succeeded to
avoid the error.

Signed-off-by: apporc <appleorchard2000 at gmail.com>
---
 src/kimchi/featuretests.py |    7 +++++++
 src/kimchi/model.py        |    2 --
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/kimchi/featuretests.py b/src/kimchi/featuretests.py
index a5755a2..641ec5b 100644
--- a/src/kimchi/featuretests.py
+++ b/src/kimchi/featuretests.py
@@ -30,6 +30,11 @@ import threading
 from kimchi import config
 
 
+def libvirt_errorhandler(userdata, error):
+    # A libvirt error handler to ignore annoying messages in stderr
+    pass
+
+
 ISO_STREAM_XML = """
 <domain type='kvm'>
   <name>ISO_STREAMING</name>
@@ -60,6 +65,8 @@ class FeatureTests(object):
         xml = ISO_STREAM_XML % {'protocol': protocol}
         conn = None
         try:
+            # Register the error handler to hide libvirt error in stderr
+            libvirt.registerErrorHandler(f=libvirt_errorhandler, ctx=None)
             conn = libvirt.open('qemu:///system')
             dom = conn.defineXML(xml)
             dom.undefine()
diff --git a/src/kimchi/model.py b/src/kimchi/model.py
index 2c6d3a1..fe1ae5b 100644
--- a/src/kimchi/model.py
+++ b/src/kimchi/model.py
@@ -222,7 +222,6 @@ class Model(object):
                 sys.exit(1)
 
     def _set_capabilities(self):
-        kimchi_log.info("*** Running feature tests ***")
         self.qemu_stream = FeatureTests.qemu_supports_iso_stream()
         self.qemu_stream_dns = FeatureTests.qemu_iso_stream_dns()
 
@@ -231,7 +230,6 @@ class Model(object):
             if FeatureTests.libvirt_supports_iso_stream(p):
                 self.libvirt_stream_protocols.append(p)
 
-        kimchi_log.info("*** Feature tests completed ***")
     _set_capabilities.priority = 90
 
     def get_capabilities(self):
-- 
1.7.9.5




More information about the Kimchi-devel mailing list