[Libvirt-cim] [PATCH] [TEST] Move some functions from utils.py to xm_virt_util.py

Guo Lian Yun yunguol at cn.ibm.com
Mon Nov 3 08:57:39 UTC 2008


libvirt-cim-bounces at redhat.com wrote on 2008-11-03 16:40:49:

> # HG changeset patch
> # User Guolian Yun <yunguol at cn.ibm.com>
> # Date 1225701642 28800
> # Node ID 636e060429738891aae9d1c5ca43e12d1508773c
> # Parent  d1614c101c281b57bd2bc98dfb6625f790748e54
> [TEST] Move some functions from utils.py to xm_virt_util.py
> 
> I will do below on the next:
> 1) Update common_util.py
> 2) Delete these functions in utils.py
> 3) Update all related tc
> 
> Signed-off-by: Guolian Yun <yunguol at cn.ibm.com>
> 
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-
> cim/lib/XenKvmLib/test_doms.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/test_doms.py   Wed Oct 29 20:
> 11:47 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/test_doms.py   Mon Nov 03 00:
> 40:42 2008 -0800
> @@ -24,7 +24,7 @@
>  import tempfile
>  import os
>  from VirtLib import utils
> -from XenKvmLib.xm_virt_util import domain_list
> +from XenKvmLib.xm_virt_util import domain_list, virt2uri
>  from CimTest.Globals import CIM_FUUID
> 
>  try:
> @@ -47,19 +47,19 @@
>      f.write(xml)
>      f.close()
> 
> -    cmd = "virsh -c %s define %s" % (utils.virt2uri(virt), name)
> +    cmd = "virsh -c %s define %s" % (virt2uri(virt), name)
>      s, o = utils.run_remote(server, cmd)
> 
>      return s == 0
> 
>  def undefine_test_domain(name, server, virt="Xen"):
> -    cmd = "virsh -c %s undefine %s" % (utils.virt2uri(virt), name)
> +    cmd = "virsh -c %s undefine %s" % (virt2uri(virt), name)
>      s, o = utils.run_remote(server, cmd)
> 
>      return s == 0
> 
>  def start_test_domain(name, server, virt="Xen"):
> -    cmd = "virsh -c %s start %s" % (utils.virt2uri(virt), name)
> +    cmd = "virsh -c %s start %s" % (virt2uri(virt), name)
>      s, o = utils.run_remote(server, cmd)
> 
>      return s == 0
> @@ -68,7 +68,7 @@
>      """Get a list of domid from virsh"""
> 
>      cmd = "virsh -c %s list 2>/dev/null | sed '1,2 d; /^$/d'" % \
> -                utils.virt2uri(virt)
> +                virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
>      if ret != 0:
>          return None
> @@ -109,7 +109,7 @@
>  def viruuid(name, server, virt="Xen"):
>      """Return domain uuid given domid or domname"""
>      cmd = "virsh -c %s domuuid %s 2>/dev/null | sed '/^$/d'" % \
> -                (utils.virt2uri(virt), name)
> +                (virt2uri(virt), name)
>      ret, out = utils.run_remote(server, cmd)
>      if ret == 0:
>          return out.strip(" \n")
> @@ -120,7 +120,7 @@
>      """Destroy and undefine a domain.
>      name could be domid or domname"""
>      cmd = "virsh -c %s 'destroy %s ; undefine %s'" % \
> -                (utils.virt2uri(virt), name, name)
> +                (virt2uri(virt), name, name)
>      utils.run_remote(server, cmd)
> 
>  def destroy_and_undefine_all(server, virt="Xen", aggressive = False):
> @@ -154,7 +154,7 @@
>      else:
>          name = xmlfile_domname
> 
> -    vcmd = "virsh -c %s %s %s" % (utils.virt2uri(virt), cmd, name)
> +    vcmd = "virsh -c %s %s %s" % (virt2uri(virt), cmd, name)
>      s, o = utils.run_remote(server, vcmd)
>      if cmd == "define" or cmd == "create":
>          f.close()
> @@ -165,7 +165,7 @@
>         Get the vcpu lists. The input is either the domid or domname.
>      """
>      cmd = "virsh -c %s vcpuinfo %s | grep '^$' | wc -l" % \
> -                (utils.virt2uri(virt), name_id)
> +                (virt2uri(virt), name_id)
>      ret, out = utils.run_remote(server, cmd)
> 
>      if ret != 0:
> @@ -180,7 +180,7 @@
>      nf.write(net_xml)
>      nf.flush()
>      fname = nf.name
> -    cmd = "virsh -c %s net-create %s" % (utils.virt2uri(virt), fname)
> +    cmd = "virsh -c %s net-create %s" % (virt2uri(virt), fname)
>      ret, out = utils.run_remote(server, cmd)
>      nf.close()
>      if ret != 0:
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-
> cim/lib/XenKvmLib/test_xml.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/test_xml.py   Wed Oct 29 20:
> 11:47 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/test_xml.py   Mon Nov 03 00:
> 40:42 2008 -0800
> @@ -35,7 +35,7 @@
>  from XenKvmLib.test_doms import set_uuid, create_vnet
>  from VirtLib.live import available_bridges
>  from XenKvmLib.xm_virt_util import net_list, 
get_bridge_from_network_xml, \
> -                                   bootloader
> +                                   bootloader, virt2uri
>  from CimTest.ReturnCodes import SKIP
> 
>  image_dir   = "/tmp"
> @@ -201,7 +201,7 @@
> 
> 
>  def dumpxml(name, server, virt="Xen"):
> -    cmd = "virsh -c %s dumpxml %s" % (utils.virt2uri(virt), name)
> +    cmd = "virsh -c %s dumpxml %s" % (virt2uri(virt), name)
>      s, o = utils.run_remote(server, cmd)
>      if s == 0:
>          return o
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-
> cim/lib/XenKvmLib/xm_virt_util.py
> --- a/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py   Wed Oct 29 
> 20:11:47 2008 -0700
> +++ b/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py   Mon Nov 03 
> 00:40:42 2008 -0800
> @@ -63,7 +63,7 @@
>      """
> 
>      guest_cmd = "cat /proc/partitions | awk '/^ /{ print $4 } ' "
> -    rc, out = utils.run_remote_guest(ip, vs_name, guest_cmd)
> +    rc, out = run_remote_guest(ip, vs_name, guest_cmd)
> 
>      if rc != 0:
>          return None
> @@ -89,7 +89,7 @@
>         virt = "Xen"
> 
>      cmd = "virsh -c %s list --all | sed -e '1,2 d' -e '$ d'" % \
> -                utils.virt2uri(virt)
> +                virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
> 
>      if ret != 0:
> @@ -109,7 +109,7 @@
>          virt = "Xen"
> 
>      cmd = "virsh -c %s list | sed -e '1,2 d' -e '$ d'" % \
> -                utils.virt2uri(virt)
> +                virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
> 
>      if ret != 0:
> @@ -156,7 +156,7 @@
>      """Function to list active network"""
>      names = []
>      cmd = "virsh -c %s net-list | sed -e '1,2 d' -e '$ d'" % \
> -                utils.virt2uri(virt)
> +                virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
> 
>      if ret != 0:
> @@ -173,7 +173,7 @@
>      """Function returns bridge name for a given virtual network"""
> 
>      cmd = "virsh -c %s net-dumpxml %s | awk '/bridge name/ { print $2 
}'" % \
> -                (utils.virt2uri(virt), network)
> +                (virt2uri(virt), network)
>      ret, out = utils.run_remote(server, cmd)
> 
>      if ret != 0:
> @@ -196,7 +196,7 @@
>      return None
> 
>  def virsh_version(server, virt="KVM"):
> -    cmd = "virsh -c %s -v " % utils.virt2uri(virt)
> +    cmd = "virsh -c %s -v " % virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
>      if ret != 0:
>          return None
> @@ -206,7 +206,7 @@
>      """Function to list active DiskPool list"""
>      names = []
>      cmd = "virsh -c %s pool-list | sed -e '1,2 d' -e '$ d'" % \
> -           utils.virt2uri(virt)
> +           virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
> 
>      if ret != 0:
> @@ -221,7 +221,7 @@
>      return names
> 
>  def virsh_vcpuinfo(server, dom, virt="Xen"):
> -    cmd = "virsh -c %s vcpuinfo %s | grep VCPU | wc -l" % (utils.
> virt2uri(virt),
> +    cmd = "virsh -c %s vcpuinfo %s | grep VCPU | wc -l" % 
(virt2uri(virt),
>            dom)
>      ret, out = utils.run_remote(server, cmd)
>      if out.isdigit():
> @@ -229,10 +229,70 @@
>      return None
> 
>  def get_hv_ver(server, virt="Xen"):
> -    cmd = "virsh -c %s version | grep ^Running | cut -d ' ' -f 3,4"
> % utils.virt2uri(virt)
> +    cmd = "virsh -c %s version | grep ^Running | cut -d ' ' -f 3,4"
> %virt2uri(virt)
>      ret, out = utils.run_remote(server, cmd)
>      if ret == 0:
>          return out
>      else:
>          return None
> 
> +def run_remote_guest(ip, domain, command):
> +    """ Execute commands on remote guest console.
> +    """
> +
> +    cmd = 'python %s %s "%s"' % (CONSOLE_APP_PATH, domain, command)
> +
> +    return run_remote(ip, cmd)
> +
> +

   Kaitlin,

   I think we can remove run_remote_guest to xm_virt_util.py under ../
libvirt-cim/lib/XenKvmLib,
   because it have to be used by live.py under lib/VirtLib. We have to 
make it stay in utils.py.
   Thoughts?
 
   If you agree to make it stay in utils.py, I will rework on this patch.
   Thanks!

> +def get_xmtest_files(ip, kernel):
> +    # get the xm-test disk from morbo
> +    rc, out = run_remote(ip,
> +        "rm -rf /tmp/boot ; mkdir -p /tmp/boot /tmp/xmtest")
> +    rc, out = run_remote(ip,
> +        "cd /tmp/boot ; wget 
http://morbo.linux.ibm.com/pub/xmtest.disk.gz")
> +    if rc != 0:
> +        return 2, "fetching xmtest.disk failed:\n%s" % out
> +
> +    # mount on /tmp/xmtest
> +    rc, out = run_remote(ip,
> +        "gzip -d /tmp/boot/xmtest.disk.gz ; mount -o loop 
> /tmp/boot/xmtest.disk /tmp/xmtest")
> +    if rc != 0:
> +        run_remote(ip, "umount /tmp/xmtest")
> +        return 2, "mounting xmtest.disk failed:\n%s" % out
> +
> +    # We need "uname -r" to name the kernel correctly
> +    rc, uname = run_remote(ip, "uname -r")
> +    if rc != 0:
> +        run_remote(ip, "umount /tmp/xmtest")
> +        return 2, "uname failed:\n%s" % out
> +
> +    # get the kernel binary, put in /tmp/boot
> +    rc, out = run_remote(ip,
> +        "wget %s -O /tmp/boot/vmlinuz-\`uname -r\`" % kernel)
> +    if rc != 0:
> +        run_remote(ip, "umount /tmp/xmtest")
> +        return 2, "fetching kernel failed:\n%s" % out
> +
> +    return 0, ""
> +
> +def customize_xmtest_ramdisk(ip):
> +    # customize modules on xm-test ramdisk
> +    #    cd $xmtestdir/ramdisk ; bin/add_modules_to_initrd  ; cd
> +    rc, out = run_remote(ip,
> +                    "cd /tmp/xmtest/ramdisk ; 
bin/add_modules_to_initrd")
> +    if rc != 0:
> +        run_remote(ip, "umount /tmp/xmtest")
> +        return 2, "customizing ramdisk failed:\n%s" % out
> +
> +    return 0, ""
> +
> +def virt2uri(virt):
> +    # convert cimtest --virt param string to libvirt uri
> +    if virt == "Xen" or virt == "XenFV":
> +        return "xen:///"
> +    if virt == "KVM":
> +        return "qemu:///system"
> +    if virt == "LXC":
> +        return "lxc:///system"
> +    return ""
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-cim/main.py
> --- a/suites/libvirt-cim/main.py   Wed Oct 29 20:11:47 2008 -0700
> +++ b/suites/libvirt-cim/main.py   Mon Nov 03 00:40:42 2008 -0800
> @@ -36,6 +36,7 @@
>                              default_pool_name
>  from XenKvmLib.reporting import gen_report, send_report 
>  from VirtLib import utils
> +from XenKvmLib.xm_virt_util import virt2uri
>  from CimTest.ReturnCodes import PASS, FAIL
>  from XenKvmLib.common_util import create_netpool_conf, destroy_netpool, 
\
>                                    create_diskpool_conf, 
destroy_diskpool
> @@ -90,12 +91,12 @@
>      print "Cleaned log files."
> 
>  def pre_check(ip, virt):
> -    cmd = "virsh -c %s list --all" % utils.virt2uri(virt)
> +    cmd = "virsh -c %s list --all" % virt2uri(virt)
>      ret, out = utils.run_remote(ip, cmd)
>      if ret != 0:
>          return "This libvirt install does not support %s"  % virt
> 
> -    cmd = "virsh -c %s version" % utils.virt2uri(virt)
> +    cmd = "virsh -c %s version" % virt2uri(virt)
>      ret, out = utils.run_remote(ip, cmd)
>      if ret != 0:
>          return "Encountered an error querying libvirt with: %s" % cmd
> 
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-cim/attachments/20081103/fe2773ef/attachment.htm>


More information about the Libvirt-cim mailing list