On 06/29/2012 03:59 AM, tangchen wrote:
> Signed-off-by: Tang Chen<tanc...@cn.fujitsu.com>
> ---
>   client/virt/libvirt_vm.py |   35 ++++++++++++++++++++++++++++++-----
>   1 files changed, 30 insertions(+), 5 deletions(-)
>
> diff --git a/client/virt/libvirt_vm.py b/client/virt/libvirt_vm.py
> index ac689d3..ae82913 100644
> --- a/client/virt/libvirt_vm.py
> +++ b/client/virt/libvirt_vm.py
> @@ -4,7 +4,7 @@ Utility classes and functions to handle Virtual Machine 
> creation using libvirt.
>   @copyright: 2011 Red Hat Inc.
>   """
>
> -import time, os, logging, fcntl, re, commands, shutil, urlparse
> +import time, os, logging, fcntl, re, commands, shutil, urlparse, tempfile
>   from autotest.client.shared import error
>   from autotest.client import utils, os_dep
>   from xml.dom import minidom
> @@ -198,13 +198,20 @@ def virsh_screenshot(name, filename, uri=""):
>                         "file \n%s", name, detail)
>       return filename
>
> -def virsh_dumpxml(name, uri=""):
> +
> +def virsh_dumpxml(name, to_file="", uri="", ignore_status=False, 
> print_info=False):
>       """
>       Return the domain information as an XML dump.
>
>       @param name: VM name
>       """
> -    return virsh_cmd("dumpxml %s" % name, uri).stdout.strip()
> +    if to_file:
> +        cmd = "dumpxml %s>  %s" % (name, to_file)
> +    else:
> +        cmd = "dumpxml %s" % name
> +
> +    return virsh_cmd(cmd, uri, ignore_status, print_info).stdout.strip()
> +
>
>   def virsh_is_alive(name, uri=""):
>       """
> @@ -627,7 +634,25 @@ class VM(virt_vm.BaseVM):
>           """
>           Return VM's xml file.
>           """
> -        return virsh_dumpxml(self.name, self.connect_uri)
> +        return virsh_dumpxml(self.name, uri=self.connect_uri)
> +
> +
> +    def backup_xml(self):
> +        """
> +        Backup the guest's xmlfile.
> +        """
> +        # Since backup_xml() is not a function for testing,
> +        # we have to handle the exception here.
> +        try:
> +            xml_file = tempfile.mktemp(dir="/tmp")
> +
> +            virsh_dumpxml(self.name, to_file=xml_file, uri=self.connect_uri)
> +            return xml_file
> +        except Exception, detail:
> +            if os.path.exists(xml_file):
> +                os.remove(xml_file)
> +            logging.error("Failed to backup xml file:\n%s", detail)
> +            return ""

I thought it may be good to just re-raise the exception here.  However, 
the way you have it here will support error-testing of this method, so 
it's good.

>
>
>       def clone(self, name=None, params=None, root_dir=None, 
> address_cache=None,
> @@ -1457,7 +1482,7 @@ class VM(virt_vm.BaseVM):
>           @raise VMMACAddressMissingError: If no MAC address is defined for 
> the
>                   requested NIC
>           """
> -        thexml = virsh_dumpxml(self.name, self.connect_uri)
> +        thexml = virsh_dumpxml(self.name, uri=self.connect_uri)

Good catch!

>           dom = minidom.parseString(thexml)
>           count = 0
>           for node in dom.getElementsByTagName('interface'):

These changes look good to me.  Thanks!

-- 
Chris Evich, RHCA, RHCE, RHCDS, RHCSS
Quality Assurance Engineer
e-mail: cevich + `@' + redhat.com o: 1-888-RED-HAT1 x44214
_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to