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.
Signed-off-by: Jason Wang <jasowang@xxxxxxxxxx>
---
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 majordomo@xxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html