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?

> 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.

>      """
>      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

Reply via email to