From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: Amos Kong <akong@redhat.com>
Cc: autotest@test.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org
Subject: Re: [Qemu-devel] [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address
Date: Wed, 28 Jul 2010 19:30:48 -0300 [thread overview]
Message-ID: <1280356248.2578.320.camel@freedom> (raw)
In-Reply-To: <20100720013624.2212.64787.stgit@z>
On Tue, 2010-07-20 at 09:36 +0800, Amos Kong wrote:
> Mainly test steps:
> 1. get a new mac from pool, and the old mac addr of guest.
> 2. execute the mac_change.sh in guest.
> 3. relogin to guest and query the interfaces info by `ifconfig`
>
> Signed-off-by: Cao, Chen <kcao@redhat.com>
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
> 0 files changed, 0 insertions(+), 0 deletions(-)
>
> diff --git a/client/tests/kvm/tests/mac_change.py b/client/tests/kvm/tests/mac_change.py
> new file mode 100644
> index 0000000..dc93377
> --- /dev/null
> +++ b/client/tests/kvm/tests/mac_change.py
> @@ -0,0 +1,66 @@
> +import logging
> +from autotest_lib.client.common_lib import error
> +import kvm_utils, kvm_test_utils, kvm_net_utils
> +
> +
> +def run_mac_change(test, params, env):
> + """
> + Change MAC Address of Guest.
> +
> + 1. get a new mac from pool, and the old mac addr of guest.
> + 2. set new mac in guest and regain new IP.
> + 3. re-log into guest with new mac
> +
> + @param test: kvm test object
> + @param params: Dictionary with the test parameters
> + @param env: Dictionary with test environment.
> + """
> + timeout = int(params.get("login_timeout", 360))
> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> + logging.info("Trying to log into guest '%s' by serial", vm.name)
> + session = kvm_utils.wait_for(lambda: vm.serial_login(),
> + timeout, 0, step=2)
^ One thing that I forgot to comment on previous patches: For more
clarity, it'd be good to name the session variable in a way that lets
people refer easily that is a serial session
session_serial = ...
> + if not session:
> + raise error.TestFail("Could not log into guest '%s'" % vm.name)
> +
> + old_mac = vm.get_macaddr(0)
> + kvm_utils.put_mac_to_pool(vm.root_dir, old_mac, vm.instance)
> + new_mac = kvm_utils.get_mac_from_pool(vm.root_dir,
> + vm=vm.instance,
> + nic_index=0,
> + prefix=vm.mac_prefix)
> + logging.info("The initial MAC address is %s" % old_mac)
> + interface = kvm_net_utils.get_linux_ifname(session, old_mac)
> +
> + # Start change mac address
> + logging.info("Changing mac address to %s" % new_mac)
> + change_cmd = "ifconfig %s down && ifconfig %s hw ether %s && ifconfig %s up"\
> + % (interface, interface, new_mac, interface)
> + if session.get_command_status(change_cmd) != 0:
> + raise error.TestFail("Fail to send mac_change command")
> +
> + # Verify whether mac address is changed to new one
> + logging.info("Verifying the new mac address")
> + if session.get_command_status("ifconfig | grep -i %s" % new_mac) != 0:
> + raise error.TestFail("Fail to change mac address")
> +
> + # Restart `dhclient' to regain IP for new mac address
> + logging.info("Re-start the network to gain new ip")
> + dhclient_cmd = "dhclient -r && dhclient %s" % interface
> + session.sendline(dhclient_cmd)
> +
> + # Re-log into the guest after changing mac address
> + if kvm_utils.wait_for(session.is_responsive, 120, 20, 3):
> + # Just warning when failed to see the session become dead,
> + # because there is a little chance the ip does not change.
> + logging.warn("The session is still responsive, settings may fail.")
^ Isn't this a serial session? Then why the IP of guest changing would
make this session un-responsive? I think the best idea here is to:
1) Release the IP through dhclient -r [interface]
2) Make sure we can't stablish a ssh based session to the guest by
making a try/except block with kvm_test_utils.wait_for_login() with the
appropriate timeouts and other parameters, if succeeds, fail the test,
if it doesn't, proceed with the test.
3) Get a new IP with dhclient [interface]
4) Try to stablish a new, ssh based session to the guest and see if that
works.
> + session.close()
> +
> + # Re-log into guest and check if session is responsive
> + logging.info("Re-log into the guest")
> + session = kvm_test_utils.wait_for_login(vm,
> + timeout=int(params.get("login_timeout", 360)))
> + if not session.is_responsive():
> + raise error.TestFail("The new session is not responsive.")
^ Is it possible that right after you stablish the session it becomes
non-responsive? It seems like a redundant verification step to me.
> + session.close()
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index 5515601..7716d48 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -394,6 +394,10 @@ variants:
> restart_vm = yes
> pxe_timeout = 60
>
> + - mac_change: install setup unattended_install.cdrom
> + type = mac_change
> + kill_vm = yes
> +
> - physical_resources_check: install setup unattended_install.cdrom
> type = physical_resources_check
> catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
> @@ -1070,7 +1074,7 @@ variants:
>
> # Windows section
> - @Windows:
> - no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks) jumbo file_transfer nicdriver_unload nic_promisc multicast
> + no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks) jumbo file_transfer nicdriver_unload nic_promisc multicast mac_change
> shutdown_command = shutdown /s /f /t 0
> reboot_command = shutdown /r /f /t 0
> status_test_command = echo %errorlevel%
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2010-07-28 22:30 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-20 1:34 [RFC PATCH 00/14] Patchset of network related subtests Amos Kong
2010-07-20 1:34 ` [Qemu-devel] [Autotest][RFC " Amos Kong
2010-07-20 1:34 ` [RFC PATCH 01/14] KVM-test: Add a new macaddress pool algorithm Amos Kong
2010-07-20 1:34 ` [Qemu-devel] " Amos Kong
2010-07-20 10:19 ` Michael Goldish
2010-07-20 10:19 ` Michael Goldish
2010-07-20 13:44 ` Amos Kong
2010-07-20 15:53 ` Michael Goldish
2010-07-20 15:53 ` Michael Goldish
2010-08-03 1:34 ` Amos Kong
2010-07-27 1:48 ` Lucas Meneghel Rodrigues
2010-07-27 1:48 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [RFC PATCH 02/14] KVM Test: Add a function get_interface_name() to kvm_net_utils.py Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-27 2:08 ` Lucas Meneghel Rodrigues
2010-07-28 10:29 ` Michael Goldish
2010-07-28 10:29 ` Michael Goldish
2010-08-03 1:39 ` Amos Kong
2010-07-20 1:35 ` [RFC PATCH 03/14] KVM Test: Add a common ping module for network related tests Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 13:01 ` Lucas Meneghel Rodrigues
2010-07-28 11:50 ` Michael Goldish
2010-07-28 13:56 ` Michael Goldish
2010-07-28 13:56 ` Michael Goldish
2010-07-20 1:35 ` [RFC PATCH 04/14] KVM-test: Add a new subtest ping Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 13:15 ` Lucas Meneghel Rodrigues
2010-07-27 13:15 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-03 1:54 ` Amos Kong
2010-08-03 1:54 ` [Qemu-devel] " Amos Kong
2010-07-20 1:35 ` [RFC PATCH 05/14] KVM-test: Add a subtest jumbo Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 14:13 ` Lucas Meneghel Rodrigues
2010-07-27 14:13 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:18 ` Amos Kong
2010-08-10 7:18 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 1:35 ` [RFC PATCH 06/14] KVM-test: Add basic file transfer test Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-27 14:36 ` Lucas Meneghel Rodrigues
2010-08-10 9:29 ` [Autotest] " Amos Kong
2010-08-10 9:29 ` Amos Kong
2010-07-20 1:35 ` [RFC PATCH 07/14] KVM-test: Add a subtest of load/unload nic driver Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-28 18:12 ` Lucas Meneghel Rodrigues
2010-07-20 1:35 ` [RFC PATCH 08/14] KVM-test: Add a subtest of nic promisc Amos Kong
2010-07-20 1:35 ` [Qemu-devel] " Amos Kong
2010-07-28 21:35 ` Lucas Meneghel Rodrigues
2010-07-28 21:35 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-11 1:34 ` [Autotest] " Amos Kong
2010-08-11 1:34 ` [Qemu-devel] " Amos Kong
2010-07-20 1:36 ` [RFC PATCH 09/14] KVM-test: Add a subtest of multicast Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 21:55 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 10/14] KVM-test: Add a subtest of pxe Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 22:07 ` Lucas Meneghel Rodrigues
2010-08-10 6:11 ` Amos Kong
2010-07-20 1:36 ` [RFC PATCH 11/14] KVM-test: Add a subtest of changing mac address Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-28 22:30 ` Lucas Meneghel Rodrigues [this message]
2010-07-20 1:36 ` [RFC PATCH 12/14] KVM-test: Add a subtest of netperf Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-30 16:32 ` Lucas Meneghel Rodrigues
2010-07-20 1:36 ` [RFC PATCH 13/14] KVM-test: Improve vlan subtest Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-07-20 1:36 ` [RFC PATCH 14/14] KVM-test: Add subtest of testing offload by ethtool Amos Kong
2010-07-20 1:36 ` [Qemu-devel] " Amos Kong
2010-08-02 19:10 ` Lucas Meneghel Rodrigues
2010-08-02 19:10 ` [Qemu-devel] " Lucas Meneghel Rodrigues
2010-08-10 7:07 ` Amos Kong
2010-08-10 7:07 ` [Qemu-devel] Re: [Autotest] " Amos Kong
2010-07-20 12:12 ` [RFC PATCH 00/14] Patchset of network related subtests Lucas Meneghel Rodrigues
2010-07-20 12:12 ` [Qemu-devel] Re: [Autotest][RFC " Lucas Meneghel Rodrigues
2010-08-02 20:58 ` [RFC " Lucas Meneghel Rodrigues
2010-08-02 20:58 ` [Qemu-devel] Re: [Autotest][RFC " Lucas Meneghel Rodrigues
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1280356248.2578.320.camel@freedom \
--to=lmr@redhat.com \
--cc=akong@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.