On Thu, 2010-05-06 at 10:55 +0800, Jason Wang wrote:
> Michael Goldish wrote:
> > On 04/26/2010 01:03 PM, Jason Wang wrote:
> >   
> >> Sometimes we need to send an assist string to a session in order to
> >> get the prompt especially when re-connecting to an already logged
> >> serial session. This patch send the assist string before doing the
> >> pattern matching of remote_login.
> >>     
> >
> > Can you give an example of a prompt assist string, and a typical usage
> > example?  What guests require prompt assist strings?
> >
> >   
> It was just used by serial console, consider when the first test case 
> have already connected to the serial console, so the second test must 
> send something in order to get the prompt string. But it may be better 
> to log out during when the session is closed.

This has a upside of making things cleaner, I'd consider that.

> >> Signed-off-by: Jason Wang <jasow...@redhat.com>
> >> ---
> >>  client/tests/kvm/kvm_utils.py |    9 +++++++--
> >>  1 files changed, 7 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/client/tests/kvm/kvm_utils.py b/client/tests/kvm/kvm_utils.py
> >> index 25f3c8c..9adbaee 100644
> >> --- a/client/tests/kvm/kvm_utils.py
> >> +++ b/client/tests/kvm/kvm_utils.py
> >> @@ -451,7 +451,8 @@ def check_kvm_source_dir(source_dir):
> >>  # The following are functions used for SSH, SCP and Telnet communication 
> >> with
> >>  # guests.
> >>  
> >> -def remote_login(command, password, prompt, linesep="\n", timeout=10):
> >> +def remote_login(command, password, prompt, linesep="\n", timeout=10,
> >> +                 prompt_assist = None):
> >>     
> >                                  ^ ^
> > These spaces do not conform with PEP 8.
> >   
> Would change them.
> >   
> >>      """
> >>      Log into a remote host (guest) using SSH or Telnet. Run the given 
> >> command
> >>      using kvm_spawn and provide answers to the questions asked. If timeout
> >> @@ -468,7 +469,8 @@ def remote_login(command, password, prompt, 
> >> linesep="\n", timeout=10):
> >>      @param timeout: The maximal time duration (in seconds) to wait for 
> >> each
> >>              step of the login procedure (i.e. the "Are you sure" prompt, 
> >> the
> >>              password prompt, the shell prompt, etc)
> >> -
> >> +    @prarm prompt_assist: An assistant string sent before the pattern
> >>     
> >
> > Typo    ^
> >
> >   
> >> +            matching in order to get the prompt for some kinds of 
> >> shell_client.
> >>      @return Return the kvm_spawn object on success and None on failure.
> >>      """
> >>      sub = kvm_subprocess.kvm_shell_session(command,
> >> @@ -479,6 +481,9 @@ def remote_login(command, password, prompt, 
> >> linesep="\n", timeout=10):
> >>  
> >>      logging.debug("Trying to login with command '%s'" % command)
> >>  
> >> +    if prompt_assist is not None:
> >> +        sub.sendline(prompt_assist)
> >> +
> >>      while True:
> >>          (match, text) = sub.read_until_last_line_matches(
> >>                  [r"[Aa]re you sure", r"[Pp]assword:\s*$", 
> >> r"^\s*[Ll]ogin:\s*$",
> >>
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe kvm" in
> >> the body of a message to majord...@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 majord...@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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to