On 06/29/2012 03:59 AM, tangchen wrote:
> Signed-off-by: Tang Chen<[email protected]>
> ---
> 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
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest