From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [PATCH 7/9] KVM test: Introduce the local_login() Date: Thu, 06 May 2010 11:07:55 +0800 Message-ID: <4BE2328B.9030509@redhat.com> References: <20100426095656.26268.50549.stgit@localhost.localdomain> <20100426100418.26268.43253.stgit@localhost.localdomain> <4BD823A4.8040103@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: autotest@test.kernel.org, lmr@redhat.com, kvm@vger.kernel.org To: Michael Goldish Return-path: Received: from mx1.redhat.com ([209.132.183.28]:11555 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751061Ab0EFDIA (ORCPT ); Wed, 5 May 2010 23:08:00 -0400 In-Reply-To: <4BD823A4.8040103@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Michael Goldish wrote: > On 04/26/2010 01:04 PM, Jason Wang wrote: > >> This patch introduces a new method which is used to log into the guest >> through the guest serial console. The serial_mode must be set to >> "session" in order to make use of this patch. >> > > In what cases would we want to use this feature? The serial console is > not supported by all guests and I'm not sure it supports multiple > concurrent sessions (does it?), so it's probably not possible to use it > reliably as a replacement for the regular remote shell servers, or even > as an alternative variant. > > We plan to push some network related tests in the next few weeks, so it's important to use a serial based console rather than network based one ( our test s may load/unload the nic driver, do the stress testing which may cause the session created by remote_login() not responsible) >> Signed-off-by: Jason Wang >> --- >> client/tests/kvm/kvm_vm.py | 25 +++++++++++++++++++++++++ >> 1 files changed, 25 insertions(+), 0 deletions(-) >> >> diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py >> index 0cdf925..a22893b 100755 >> --- a/client/tests/kvm/kvm_vm.py >> +++ b/client/tests/kvm/kvm_vm.py >> @@ -814,7 +814,32 @@ class VM: >> "command", "")) >> return session >> >> + def local_login(self, timeout=240): >> + """ >> + Log into the guest via serial console >> + If timeout expires while waiting for output from the guest (e.g. a >> + password prompt or a shell prompt) -- fail. >> + """ >> + >> + serial_mode = self.params.get("serial_mode") >> + username = self.params.get("username", "") >> + password = self.params.get("password", "") >> + prompt = self.params.get("shell_prompt", "[\#\$]") >> + linesep = eval("'%s'" % self.params.get("shell_linesep", r"\n")) >> >> + if serial_mode != "session": >> + logging.debug("serial_mode is not session") >> + return None >> + else: >> + command = "nc -U %s" % self.serial_file_name >> + assist = self.params.get("prompt_assist") >> + session = kvm_utils.remote_login(command, password, prompt, linesep, >> + timeout, "", username) >> > ^ > You probably meant to pass the prompt assist string to remote_login() > but instead you're passing "". > > As I said, I just send a empty line in order to get the the prompt string, but this may be removed if I logout the console during when close the session. >> + if session: >> + session.set_status_test_command(self.params.get("status_test_" >> + "command", "")) >> + return session >> + >> def copy_files_to(self, local_path, remote_path, nic_index=0, timeout=300): >> """ >> Transfer files to the guest. >> >> -- >> 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 >> > > -- > 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 >