<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <br>
    <div class="moz-cite-prefix">On 28/04/2015 11:19, Ramon Medeiros
      wrote:<br>
    </div>
    <blockquote
      cite="mid:1430230797-8151-1-git-send-email-ramonn@linux.vnet.ibm.com"
      type="cite">
      <pre wrap="">Changes

v2: Use parse functions present on model/utils.py

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 <a class="moz-txt-link-rfc2396E" href="mailto:ramonn@linux.vnet.ibm.com">&lt;ramonn@linux.vnet.ibm.com&gt;</a>
---
 src/kimchi/model/utils.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/kimchi/model/utils.py b/src/kimchi/model/utils.py
index b2739b2..1b114f6 100644
--- a/src/kimchi/model/utils.py
+++ b/src/kimchi/model/utils.py
@@ -95,6 +95,9 @@ def _kimchi_set_metadata_node(dom, node):


 def libvirt_get_kimchi_metadata_node(dom, mode="current"):
+    if _kimchi_get_metadata_node(dom, "metadata") == None:
+        return
+</pre>
    </blockquote>
    <br>
    Doing that we will have 2 type of data processing to do the same
    thing.<br>
    <br>
    I suggest change the get_metadata_node() to return empty string as
    far as the metadata node was not identified in the guest XML.<br>
    <br>
    Some thing like:<br>
    <br>
    def get_metadata_node(dom, tag, metadata_support, mode="current"):<br>
    <b>   if not
      dom.isPersistent():                                                
       </b><b><br>
    </b><b>        return ""
                                                                  </b><b><br>
    </b><b>    xml =
      dom.XMLDesc(libvirt.VIR_DOMAIN_XML_INACTIVE)                         
    </b><b><br>
    </b><b>    root =
      etree.fromstring(xml)                                               
    </b><b><br>
    </b><b>    kimchi = root.find("metadata/{%s}kimchi" %
      KIMCHI_META_URL)                 </b><b><br>
    </b><b>    # remove the "kimchi" prefix of
      xml                                         </b><b><br>
    </b><b>    if kimchi is None: </b><b><br>
    </b><b>        return ""</b><b><br>
    </b><br>
        if
    metadata_support:                                                       
    <br>
            kimchi = libvirt_get_kimchi_metadata_node(dom,
    mode)                    <br>
       
    else:                                                                      
    <br>
            # FIXME remove this code when all distro libvirt supports
    metadata      <br>
            #
    element                                                              
    <br>
            kimchi = _kimchi_get_metadata_node(dom,
    tag)                            <br>
                                                                                   
                                       <br>
        node =
    kimchi.find(tag)                                                 <br>
        return etree.tostring(node)<br>
    <br>
    The code in bold was moved from _kimchi_get_metadata_node(). So
    there you can change the function to receive the "kimchi" node
    instead of 'dom' element.<br>
    <br>
    Also as the code will be run only and if only the metadata node is
    present we don't need to the
    FeatureTests.disable[enable]_libvirt_error_logging() in the
    _kimchi_get_metadata_node()<br>
    function.<br>
    <br>
    Hope it makes sense. =)<br>
    <br>
    <blockquote
      cite="mid:1430230797-8151-1-git-send-email-ramonn@linux.vnet.ibm.com"
      type="cite">
      <pre wrap="">
     FeatureTests.disable_libvirt_error_logging()
     try:
         xml = dom.metadata(libvirt.VIR_DOMAIN_METADATA_ELEMENT,
</pre>
    </blockquote>
    <br>
    <br>
  </body>
</html>