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

Aline Manera alinefm at linux.vnet.ibm.com
Wed Jan 22 02:50:05 UTC 2014


On 01/21/2014 05:23 AM, apporc wrote:
> 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
> +
> +

In addition to Cristian's comments, I'd suggest to also move this 
wrapper method inside the function used to register it

>   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):




More information about the Kimchi-devel mailing list