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 <[email protected]> >> --- >> 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 [email protected] >> 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 [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html >
_______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
