From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Meneghel Rodrigues Subject: Re: [KVM-AUTOTEST PATCH 05/06] kvm_utils.py: remote_login(): improve regular expression matching Date: Wed, 10 Jun 2009 16:30:05 -0300 Message-ID: <1244662205.22524.15.camel@localhost.localdomain> References: <1244507691-9575-1-git-send-email-lmr@redhat.com> <1244507691-9575-2-git-send-email-lmr@redhat.com> <1244507691-9575-3-git-send-email-lmr@redhat.com> <1244507691-9575-4-git-send-email-lmr@redhat.com> <1244507691-9575-5-git-send-email-lmr@redhat.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Michael Goldish To: autotest@test.kernel.org Return-path: Received: from mx2.redhat.com ([66.187.237.31]:39644 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757889AbZFJTaG (ORCPT ); Wed, 10 Jun 2009 15:30:06 -0400 In-Reply-To: <1244507691-9575-5-git-send-email-lmr@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, 2009-06-08 at 21:34 -0300, Lucas Meneghel Rodrigues wrote: > 1. Make the 'login:' regular expression stricter so it doesn't match > 'Last login: ...' messages. > 2. Make the 'password:' regular expression stricter. > 3. Handle 'Connection refused' messages. Applied, thanks! > Signed-off-by: Michael Goldish > --- > client/tests/kvm/kvm_utils.py | 14 +++++++++----- > 1 files changed, 9 insertions(+), 5 deletions(-) > > diff --git a/client/tests/kvm/kvm_utils.py b/client/tests/kvm/kvm_utils.py > index 434190d..e9d90ac 100644 > --- a/client/tests/kvm/kvm_utils.py > +++ b/client/tests/kvm/kvm_utils.py > @@ -539,8 +539,8 @@ def remote_login(command, password, prompt, linesep="\n", timeout=10): > > while True: > (match, text) = sub.read_until_last_line_matches( > - ["[Aa]re you sure", "[Pp]assword:", "[Ll]ogin:", > - "[Cc]onnection.*closed", prompt], > + [r"[Aa]re you sure", r"[Pp]assword:\s*$", r"^\s*[Ll]ogin:\s*$", > + r"[Cc]onnection.*closed", r"[Cc]onnection.*refused", prompt], > timeout=timeout, internal_timeout=0.5) > if match == 0: # "Are you sure you want to continue connecting" > logging.debug("Got 'Are you sure...'; sending 'yes'") > @@ -564,11 +564,15 @@ def remote_login(command, password, prompt, linesep="\n", timeout=10): > logging.debug("Got 'Connection closed'") > sub.close() > return None > - elif match == 4: # prompt > + elif match == 4: # "Connection refused" > + kvm_log.debug("Got 'Connection refused'") > + sub.close() > + return None > + elif match == 5: # prompt > logging.debug("Got shell prompt -- logged in") > return sub > else: # match == None > - logging.debug("Timeout or process terminated") > + logging.debug("Timeout elapsed or process terminated") > sub.close() > return None > > @@ -602,7 +606,7 @@ def remote_scp(command, password, timeout=300, login_timeout=10): > > while True: > (match, text) = sub.read_until_last_line_matches( > - ["[Aa]re you sure", "[Pp]assword:", "lost connection"], > + [r"[Aa]re you sure", r"[Pp]assword:\s*$", r"lost connection"], > timeout=_timeout, internal_timeout=0.5) > if match == 0: # "Are you sure you want to continue connecting" > logging.debug("Got 'Are you sure...'; sending 'yes'") -- Lucas Meneghel Rodrigues Software Engineer (QE) Red Hat - Emerging Technologies