<br><tt><font size=2>libvirt-cim-bounces@redhat.com wrote on 2008-11-03
16:40:49:<br>
<br>
> # HG changeset patch<br>
> # User Guolian Yun <yunguol@cn.ibm.com><br>
> # Date 1225701642 28800<br>
> # Node ID 636e060429738891aae9d1c5ca43e12d1508773c<br>
> # Parent  d1614c101c281b57bd2bc98dfb6625f790748e54<br>
> [TEST] Move some functions from utils.py to xm_virt_util.py<br>
> <br>
> I will do below on the next:<br>
> 1) Update common_util.py<br>
> 2) Delete these functions in utils.py<br>
> 3) Update all related tc<br>
> <br>
> Signed-off-by: Guolian Yun <yunguol@cn.ibm.com><br>
> <br>
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-<br>
> cim/lib/XenKvmLib/test_doms.py<br>
> --- a/suites/libvirt-cim/lib/XenKvmLib/test_doms.py   Wed Oct
29 20:<br>
> 11:47 2008 -0700<br>
> +++ b/suites/libvirt-cim/lib/XenKvmLib/test_doms.py   Mon Nov
03 00:<br>
> 40:42 2008 -0800<br>
> @@ -24,7 +24,7 @@<br>
>  import tempfile<br>
>  import os<br>
>  from VirtLib import utils<br>
> -from XenKvmLib.xm_virt_util import domain_list<br>
> +from XenKvmLib.xm_virt_util import domain_list, virt2uri<br>
>  from CimTest.Globals import CIM_FUUID<br>
>  <br>
>  try:<br>
> @@ -47,19 +47,19 @@<br>
>      f.write(xml)<br>
>      f.close()<br>
>  <br>
> -    cmd = "virsh -c %s define %s" % (utils.virt2uri(virt),
name)<br>
> +    cmd = "virsh -c %s define %s" % (virt2uri(virt),
name)<br>
>      s, o = utils.run_remote(server, cmd)<br>
>  <br>
>      return s == 0<br>
>  <br>
>  def undefine_test_domain(name, server, virt="Xen"):<br>
> -    cmd = "virsh -c %s undefine %s" % (utils.virt2uri(virt),
name)<br>
> +    cmd = "virsh -c %s undefine %s" % (virt2uri(virt),
name)<br>
>      s, o = utils.run_remote(server, cmd)<br>
>  <br>
>      return s == 0<br>
>  <br>
>  def start_test_domain(name, server, virt="Xen"):<br>
> -    cmd = "virsh -c %s start %s" % (utils.virt2uri(virt),
name)<br>
> +    cmd = "virsh -c %s start %s" % (virt2uri(virt),
name)<br>
>      s, o = utils.run_remote(server, cmd)<br>
>  <br>
>      return s == 0<br>
> @@ -68,7 +68,7 @@<br>
>      """Get a list of domid from virsh"""<br>
>      <br>
>      cmd = "virsh -c %s list 2>/dev/null |
sed '1,2 d; /^$/d'" % \<br>
> -                utils.virt2uri(virt)<br>
> +                virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>      if ret != 0:<br>
>          return None<br>
> @@ -109,7 +109,7 @@<br>
>  def viruuid(name, server, virt="Xen"):<br>
>      """Return domain uuid given domid
or domname"""<br>
>      cmd = "virsh -c %s domuuid %s 2>/dev/null
| sed '/^$/d'" % \<br>
> -                (utils.virt2uri(virt),
name)<br>
> +                (virt2uri(virt),
name)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>      if ret == 0:<br>
>          return out.strip(" \n")<br>
> @@ -120,7 +120,7 @@<br>
>      """Destroy and undefine a domain.<br>
>      name could be domid or domname"""<br>
>      cmd = "virsh -c %s 'destroy %s ; undefine
%s'" % \<br>
> -                (utils.virt2uri(virt),
name, name)<br>
> +                (virt2uri(virt),
name, name)<br>
>      utils.run_remote(server, cmd)<br>
>  <br>
>  def destroy_and_undefine_all(server, virt="Xen", aggressive
= False):<br>
> @@ -154,7 +154,7 @@<br>
>      else:<br>
>          name = xmlfile_domname<br>
>  <br>
> -    vcmd = "virsh -c %s %s %s" % (utils.virt2uri(virt),
cmd, name)<br>
> +    vcmd = "virsh -c %s %s %s" % (virt2uri(virt),
cmd, name)<br>
>      s, o = utils.run_remote(server, vcmd)<br>
>      if cmd == "define" or cmd == "create":<br>
>          f.close()<br>
> @@ -165,7 +165,7 @@<br>
>         Get the vcpu lists. The input is either
the domid or domname.<br>
>      """<br>
>      cmd = "virsh -c %s vcpuinfo %s | grep '^$'
| wc -l" % \<br>
> -                (utils.virt2uri(virt),
name_id)<br>
> +                (virt2uri(virt),
name_id)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>  <br>
>      if ret != 0:<br>
> @@ -180,7 +180,7 @@<br>
>      nf.write(net_xml)<br>
>      nf.flush()<br>
>      fname = nf.name<br>
> -    cmd = "virsh -c %s net-create %s" % (utils.virt2uri(virt),
fname)<br>
> +    cmd = "virsh -c %s net-create %s" % (virt2uri(virt),
fname)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>      nf.close()<br>
>      if ret != 0:<br>
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-<br>
> cim/lib/XenKvmLib/test_xml.py<br>
> --- a/suites/libvirt-cim/lib/XenKvmLib/test_xml.py   Wed Oct
29 20:<br>
> 11:47 2008 -0700<br>
> +++ b/suites/libvirt-cim/lib/XenKvmLib/test_xml.py   Mon Nov
03 00:<br>
> 40:42 2008 -0800<br>
> @@ -35,7 +35,7 @@<br>
>  from XenKvmLib.test_doms import set_uuid, create_vnet<br>
>  from VirtLib.live import available_bridges<br>
>  from XenKvmLib.xm_virt_util import net_list, get_bridge_from_network_xml,
\<br>
> -                    
              bootloader<br>
> +                    
              bootloader, virt2uri<br>
>  from CimTest.ReturnCodes import SKIP<br>
>  <br>
>  image_dir   = "/tmp"<br>
> @@ -201,7 +201,7 @@<br>
>  <br>
>  <br>
>  def dumpxml(name, server, virt="Xen"):<br>
> -    cmd = "virsh -c %s dumpxml %s" % (utils.virt2uri(virt),
name)<br>
> +    cmd = "virsh -c %s dumpxml %s" % (virt2uri(virt),
name)<br>
>      s, o = utils.run_remote(server, cmd)<br>
>      if s == 0:<br>
>          return o<br>
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-<br>
> cim/lib/XenKvmLib/xm_virt_util.py<br>
> --- a/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py   Wed
Oct 29 <br>
> 20:11:47 2008 -0700<br>
> +++ b/suites/libvirt-cim/lib/XenKvmLib/xm_virt_util.py   Mon
Nov 03 <br>
> 00:40:42 2008 -0800<br>
> @@ -63,7 +63,7 @@<br>
>      """<br>
>  <br>
>      guest_cmd = "cat /proc/partitions | awk '/^
/{ print $4 } ' "<br>
> -    rc, out = utils.run_remote_guest(ip, vs_name, guest_cmd)<br>
> +    rc, out = run_remote_guest(ip, vs_name, guest_cmd)<br>
>  <br>
>      if rc != 0:<br>
>          return None<br>
> @@ -89,7 +89,7 @@<br>
>         virt = "Xen"<br>
>  <br>
>      cmd = "virsh -c %s list --all | sed -e '1,2
d' -e '$ d'" % \<br>
> -                utils.virt2uri(virt)<br>
> +                virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>  <br>
>      if ret != 0:<br>
> @@ -109,7 +109,7 @@<br>
>          virt = "Xen"<br>
>  <br>
>      cmd = "virsh -c %s list | sed -e '1,2 d'
-e '$ d'" % \<br>
> -                utils.virt2uri(virt)<br>
> +                virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>  <br>
>      if ret != 0:<br>
> @@ -156,7 +156,7 @@<br>
>      """Function to list active network"""<br>
>      names = []<br>
>      cmd = "virsh -c %s net-list | sed -e '1,2
d' -e '$ d'" % \<br>
> -                utils.virt2uri(virt)<br>
> +                virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>  <br>
>      if ret != 0:<br>
> @@ -173,7 +173,7 @@<br>
>      """Function returns bridge name
for a given virtual network"""<br>
>  <br>
>      cmd = "virsh -c %s net-dumpxml %s | awk '/bridge
name/ { print $2 }'" % \<br>
> -                (utils.virt2uri(virt),
network)<br>
> +                (virt2uri(virt),
network)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>  <br>
>      if ret != 0:<br>
> @@ -196,7 +196,7 @@<br>
>      return None<br>
>  <br>
>  def virsh_version(server, virt="KVM"):<br>
> -    cmd = "virsh -c %s -v " % utils.virt2uri(virt)<br>
> +    cmd = "virsh -c %s -v " % virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>      if ret != 0:<br>
>          return None<br>
> @@ -206,7 +206,7 @@<br>
>      """Function to list active DiskPool
list"""<br>
>      names = []<br>
>      cmd = "virsh -c %s pool-list | sed -e '1,2
d' -e '$ d'" % \<br>
> -           utils.virt2uri(virt)<br>
> +           virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>  <br>
>      if ret != 0:<br>
> @@ -221,7 +221,7 @@<br>
>      return names<br>
>  <br>
>  def virsh_vcpuinfo(server, dom, virt="Xen"):<br>
> -    cmd = "virsh -c %s vcpuinfo %s | grep VCPU | wc
-l" % (utils.<br>
> virt2uri(virt),<br>
> +    cmd = "virsh -c %s vcpuinfo %s | grep VCPU | wc
-l" % (virt2uri(virt),<br>
>            dom)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>      if out.isdigit():<br>
> @@ -229,10 +229,70 @@<br>
>      return None<br>
>  <br>
>  def get_hv_ver(server, virt="Xen"):<br>
> -    cmd = "virsh -c %s version | grep ^Running | cut
-d ' ' -f 3,4"<br>
> % utils.virt2uri(virt)<br>
> +    cmd = "virsh -c %s version | grep ^Running | cut
-d ' ' -f 3,4"<br>
> %virt2uri(virt)<br>
>      ret, out = utils.run_remote(server, cmd)<br>
>      if ret == 0:<br>
>          return out<br>
>      else:<br>
>          return None<br>
>  <br>
> +def run_remote_guest(ip, domain, command):<br>
> +    """ Execute commands on remote guest
console.<br>
> +    """<br>
> +<br>
> +    cmd = 'python %s %s "%s"' % (CONSOLE_APP_PATH,
domain, command)<br>
> +<br>
> +    return run_remote(ip, cmd)<br>
> +<br>
> +</font></tt>
<br>
<br><tt><font size=2>   Kaitlin,</font></tt>
<br>
<br><tt><font size=2>   I think we can remove run_remote_guest
to xm_virt_util.py under ../libvirt-cim/lib/XenKvmLib,</font></tt>
<br><tt><font size=2>   because it have to be used by live.py
under lib/VirtLib. We have to make it stay in utils.py.</font></tt>
<br><tt><font size=2>   Thoughts?</font></tt>
<br><tt><font size=2>   </font></tt>
<br><tt><font size=2>   If you agree to make it stay in utils.py,
I will rework on this patch.</font></tt>
<br><tt><font size=2>   Thanks!</font></tt>
<br><tt><font size=2><br>
> +def get_xmtest_files(ip, kernel):<br>
> +    # get the xm-test disk from morbo<br>
> +    rc, out = run_remote(ip,<br>
> +        "rm -rf /tmp/boot ; mkdir -p /tmp/boot
/tmp/xmtest")<br>
> +    rc, out = run_remote(ip,<br>
> +        "cd /tmp/boot ; wget http://morbo.linux.ibm.com/pub/xmtest.disk.gz")<br>
> +    if rc != 0:<br>
> +        return 2, "fetching xmtest.disk
failed:\n%s" % out<br>
> +<br>
> +    # mount on /tmp/xmtest<br>
> +    rc, out = run_remote(ip,<br>
> +        "gzip -d /tmp/boot/xmtest.disk.gz
; mount -o loop <br>
> /tmp/boot/xmtest.disk /tmp/xmtest")<br>
> +    if rc != 0:<br>
> +        run_remote(ip, "umount /tmp/xmtest")<br>
> +        return 2, "mounting xmtest.disk
failed:\n%s" % out<br>
> +<br>
> +    # We need "uname -r" to name the kernel correctly<br>
> +    rc, uname = run_remote(ip, "uname -r")<br>
> +    if rc != 0:<br>
> +        run_remote(ip, "umount /tmp/xmtest")<br>
> +        return 2, "uname failed:\n%s"
% out<br>
> +<br>
> +    # get the kernel binary, put in /tmp/boot<br>
> +    rc, out = run_remote(ip,<br>
> +        "wget %s -O /tmp/boot/vmlinuz-\`uname
-r\`" % kernel)<br>
> +    if rc != 0:<br>
> +        run_remote(ip, "umount /tmp/xmtest")<br>
> +        return 2, "fetching kernel failed:\n%s"
% out<br>
> +<br>
> +    return 0, ""<br>
> +<br>
> +def customize_xmtest_ramdisk(ip):<br>
> +    # customize modules on xm-test ramdisk<br>
> +    #    cd $xmtestdir/ramdisk ; bin/add_modules_to_initrd
 ; cd<br>
> +    rc, out = run_remote(ip,<br>
> +                    "cd
/tmp/xmtest/ramdisk ; bin/add_modules_to_initrd")<br>
> +    if rc != 0:<br>
> +        run_remote(ip, "umount /tmp/xmtest")<br>
> +        return 2, "customizing ramdisk failed:\n%s"
% out<br>
> +<br>
> +    return 0, ""<br>
> +<br>
> +def virt2uri(virt):<br>
> +    # convert cimtest --virt param string to libvirt uri<br>
> +    if virt == "Xen" or virt == "XenFV":<br>
> +        return "xen:///"<br>
> +    if virt == "KVM":<br>
> +        return "qemu:///system"<br>
> +    if virt == "LXC":<br>
> +        return "lxc:///system"<br>
> +    return ""<br>
> diff -r d1614c101c28 -r 636e06042973 suites/libvirt-cim/main.py<br>
> --- a/suites/libvirt-cim/main.py   Wed Oct 29 20:11:47 2008 -0700<br>
> +++ b/suites/libvirt-cim/main.py   Mon Nov 03 00:40:42 2008 -0800<br>
> @@ -36,6 +36,7 @@<br>
>                    
         default_pool_name<br>
>  from XenKvmLib.reporting import gen_report, send_report <br>
>  from VirtLib import utils<br>
> +from XenKvmLib.xm_virt_util import virt2uri<br>
>  from CimTest.ReturnCodes import PASS, FAIL<br>
>  from XenKvmLib.common_util import create_netpool_conf, destroy_netpool,
\<br>
>                    
               create_diskpool_conf,
destroy_diskpool<br>
> @@ -90,12 +91,12 @@<br>
>      print "Cleaned log files."<br>
>  <br>
>  def pre_check(ip, virt):<br>
> -    cmd = "virsh -c %s list --all" % utils.virt2uri(virt)<br>
> +    cmd = "virsh -c %s list --all" % virt2uri(virt)<br>
>      ret, out = utils.run_remote(ip, cmd)<br>
>      if ret != 0:<br>
>          return "This libvirt install
does not support %s"  % virt<br>
>  <br>
> -    cmd = "virsh -c %s version" % utils.virt2uri(virt)<br>
> +    cmd = "virsh -c %s version" % virt2uri(virt)<br>
>      ret, out = utils.run_remote(ip, cmd)<br>
>      if ret != 0:<br>
>          return "Encountered an error
querying libvirt with: %s" % cmd<br>
> <br>
> _______________________________________________<br>
> Libvirt-cim mailing list<br>
> Libvirt-cim@redhat.com<br>
> https://www.redhat.com/mailman/listinfo/libvirt-cim<br>
</font></tt>