Index: client/tests/kvm/tests/vlan.py |
diff --git a/client/tests/kvm/tests/vlan.py b/client/tests/kvm/tests/vlan.py |
index f41ea6a055cc14b9052c681781200ceff9c8904c..b7cfda251e20cb6f378eef36178f8197fb8997ba 100644 |
--- a/client/tests/kvm/tests/vlan.py |
+++ b/client/tests/kvm/tests/vlan.py |
@@ -1,6 +1,7 @@ |
import logging, time, re |
from autotest_lib.client.common_lib import error |
-import kvm_test_utils, kvm_utils |
+import kvm_test_utils, kvm_utils, kvm_subprocess |
+ |
def run_vlan(test, params, env): |
""" |
@@ -18,7 +19,6 @@ def run_vlan(test, params, env): |
@param params: Dictionary with the test parameters. |
@param env: Dictionary with test environment. |
""" |
- |
vm = [] |
session = [] |
ifname = [] |
@@ -31,28 +31,26 @@ def run_vlan(test, params, env): |
maximal = int(params.get("maximal")) |
file_size = params.get("file_size") |
- vm.append(kvm_test_utils.get_living_vm(env, params.get("main_vm"))) |
- vm.append(kvm_test_utils.get_living_vm(env, "vm2")) |
+ vm.append(env.get_vm(params["main_vm"])) |
+ vm.append(env.get_vm("vm2")) |
+ for vm_ in vm: |
+ vm_.verify_alive() |
- def add_vlan(session, id, iface="eth0"): |
- if session.get_command_status("vconfig add %s %s" % (iface, id)) != 0: |
- raise error.TestError("Fail to add %s.%s" % (iface, id)) |
+ def add_vlan(session, v_id, iface="eth0"): |
+ session.cmd("vconfig add %s %s" % (iface, v_id)) |
- def set_ip_vlan(session, id, ip, iface="eth0"): |
- iface = "%s.%s" % (iface, id) |
- if session.get_command_status("ifconfig %s %s" % (iface, ip)) != 0: |
- raise error.TestError("Fail to configure ip for %s" % iface) |
+ def set_ip_vlan(session, v_id, ip, iface="eth0"): |
+ iface = "%s.%s" % (iface, v_id) |
+ session.cmd("ifconfig %s %s" % (iface, ip)) |
def set_arp_ignore(session, iface="eth0"): |
ignore_cmd = "echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore" |
- if session.get_command_status(ignore_cmd) != 0: |
- raise error.TestError("Fail to set arp_ignore of %s" % session) |
+ session.cmd(ignore_cmd) |
- def rem_vlan(session, id, iface="eth0"): |
+ def rem_vlan(session, v_id, iface="eth0"): |
rem_vlan_cmd = "if [[ -e /proc/net/vlan/%s ]];then vconfig rem %s;fi" |
- iface = "%s.%s" % (iface, id) |
- s = session.get_command_status(rem_vlan_cmd % (iface, iface)) |
- return s |
+ iface = "%s.%s" % (iface, v_id) |
+ return session.cmd_status(rem_vlan_cmd % (iface, iface)) |
def nc_transfer(src, dst): |
nc_port = kvm_utils.find_free_port(1025, 5334, vm_ip[dst]) |
@@ -65,27 +63,26 @@ def run_vlan(test, params, env): |
time.sleep(2) |
#send file from src to dst |
send_cmd = send_cmd % (vlan_ip[dst], str(nc_port), "file") |
- if session[src].get_command_status(send_cmd, timeout = 60) != 0: |
- raise error.TestFail ("Fail to send file" |
- " from vm%s to vm%s" % (src+1, dst+1)) |
- s, o = session[dst].read_up_to_prompt(timeout=60) |
- if s != True: |
+ session[src].cmd(send_cmd, timeout=60) |
+ try: |
+ session[dst].read_up_to_prompt(timeout=60) |
+ except kvm_subprocess.ExpectError: |
raise error.TestFail ("Fail to receive file" |
" from vm%s to vm%s" % (src+1, dst+1)) |
#check MD5 message digest of receive file in dst |
- output = session[dst].get_command_output("md5sum receive").strip() |
+ output = session[dst].cmd_output("md5sum receive").strip() |
digest_receive = re.findall(r'(\w+)', output)[0] |
if digest_receive == digest_origin[src]: |
- logging.info("file succeed received in vm %s" % vlan_ip[dst]) |
+ logging.info("file succeed received in vm %s", vlan_ip[dst]) |
else: |
- logging.info("digest_origin is %s" % digest_origin[src]) |
- logging.info("digest_receive is %s" % digest_receive) |
+ logging.info("digest_origin is %s", digest_origin[src]) |
+ logging.info("digest_receive is %s", digest_receive) |
raise error.TestFail("File transfered differ from origin") |
- session[dst].get_command_status("rm -f receive") |
+ session[dst].cmd_output("rm -f receive") |
for i in range(2): |
- session.append(kvm_test_utils.wait_for_login(vm[i], |
- timeout=int(params.get("login_timeout", 360)))) |
+ session.append(vm[i].wait_for_login( |
+ timeout=int(params.get("login_timeout", 360)))) |
if not session[i] : |
raise error.TestError("Could not log into guest(vm%d)" % i) |
logging.info("Logged in") |
@@ -97,22 +94,16 @@ def run_vlan(test, params, env): |
#produce sized file in vm |
dd_cmd = "dd if=/dev/urandom of=file bs=1024k count=%s" |
- if session[i].get_command_status(dd_cmd % file_size) != 0: |
- raise error.TestFail("File producing failed") |
+ session[i].cmd(dd_cmd % file_size) |
#record MD5 message digest of file |
- s, output =session[i].get_command_status_output("md5sum file", |
- timeout=60) |
- if s != 0: |
- raise error.TestFail("File MD5_checking failed" ) |
+ output = session[i].cmd("md5sum file", timeout=60) |
digest_origin.append(re.findall(r'(\w+)', output)[0]) |
#stop firewall in vm |
- session[i].get_command_status("/etc/init.d/iptables stop") |
+ session[i].cmd_output("/etc/init.d/iptables stop") |
#load 8021q module for vconfig |
- load_8021q_cmd = "modprobe 8021q" |
- if session[i].get_command_status(load_8021q_cmd) != 0: |
- raise error.TestError("Fail to load 8021q module on VM%s" % i) |
+ session[i].cmd("modprobe 8021q") |
try: |
for i in range(2): |
@@ -123,7 +114,7 @@ def run_vlan(test, params, env): |
set_arp_ignore(session[i], ifname[i]) |
for vlan in range(1, vlan_num+1): |
- logging.info("Test for vlan %s" % vlan) |
+ logging.info("Test for vlan %s", vlan) |
logging.info("Ping between vlans") |
interface = ifname[0] + '.' + str(vlan) |
@@ -146,15 +137,14 @@ def run_vlan(test, params, env): |
# we must use a dedicated session becuase the kvm_subprocess |
# does not have the other method to interrupt the process in |
# the guest rather than close the session. |
- session_flood = kvm_test_utils.wait_for_login(vm[src], |
- timeout = 60) |
+ session_flood = vm[src].wait_for_login(timeout=60) |
kvm_test_utils.ping(vlan_ip[dst], flood=True, |
interface=ifname[src], |
session=session_flood, timeout=10) |
session_flood.close() |
- flood_ping(0,1) |
- flood_ping(1,0) |
+ flood_ping(0, 1) |
+ flood_ping(1, 0) |
logging.info("Transfering data through nc") |
nc_transfer(0, 1) |
@@ -164,7 +154,7 @@ def run_vlan(test, params, env): |
for vlan in range(1, vlan_num+1): |
rem_vlan(session[0], vlan, ifname[0]) |
rem_vlan(session[1], vlan, ifname[1]) |
- logging.info("rem vlan: %s" % vlan) |
+ logging.info("rem vlan: %s", vlan) |
# Plumb/unplumb maximal unber of vlan interfaces |
i = 1 |