[Kimchi-devel] [PATCH v4] Supress error messages while checking vm metadata

Daniel Henrique Barboza dhbarboza82 at gmail.com
Thu Jun 4 20:00:00 UTC 2015


Reviewed-by: Daniel Barboza <dhbarboza82 at gmail.com>

On 06/04/2015 01:44 AM, Ramon Medeiros wrote:
> The function FeatureTests.disable_libvirt_error_logging only removes the
> error message that will be displayed on the console. Libvirt also logs
> errors on messages log. To avoid flood messages log with metadata errors,
> it will be verified manually if the xml has the tag.
>
> Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
>
> Changes:
>
> v4:
> Fix make check-local errors
>
> v3:
> Discard all code writed before. Aline suggested me a nice workaround, check
> if the xml has metadata tag.
> ---
>   src/kimchi/model/utils.py | 15 +++++++++++----
>   1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/src/kimchi/model/utils.py b/src/kimchi/model/utils.py
> index 0c9d519..7f27edd 100644
> --- a/src/kimchi/model/utils.py
> +++ b/src/kimchi/model/utils.py
> @@ -22,7 +22,6 @@ from lxml import etree, objectify
>   from lxml.builder import E, ElementMaker
>   
>   from kimchi.exception import OperationFailed
> -from kimchi.model.featuretests import FeatureTests
>   
>   KIMCHI_META_URL = "https://github.com/kimchi-project/kimchi"
>   KIMCHI_NAMESPACE = "kimchi"
> @@ -84,7 +83,8 @@ def _kimchi_set_metadata_node(dom, node):
>   
>   
>   def libvirt_get_kimchi_metadata_node(dom, mode="current"):
> -    FeatureTests.disable_libvirt_error_logging()
> +    if not metadata_exists(dom):
> +        return None
>       try:
>           xml = dom.metadata(libvirt.VIR_DOMAIN_METADATA_ELEMENT,
>                              KIMCHI_META_URL,
> @@ -92,8 +92,6 @@ def libvirt_get_kimchi_metadata_node(dom, mode="current"):
>           return etree.fromstring(xml)
>       except libvirt.libvirtError:
>           return None
> -    finally:
> -        FeatureTests.enable_libvirt_error_logging()
>   
>   
>   def set_metadata_node(dom, node, metadata_support, mode="all"):
> @@ -151,3 +149,12 @@ def get_metadata_node(dom, tag, metadata_support, mode="current"):
>           if node is not None:
>               return etree.tostring(node)
>       return ""
> +
> +
> +def metadata_exists(dom):
> +    xml = dom.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE)
> +    root = etree.fromstring(xml)
> +
> +    if root.find("metadata") is None:
> +        return False
> +    return True




More information about the Kimchi-devel mailing list