tests/vm: give wait_ssh() option to wait for root

Allow wait_ssh to wait for root user to be ready.
This solves the issue where we perform a wait_ssh()
successfully, but the root user is not yet ready
to be logged in.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20200219163537.22098-5-robert.foley@linaro.org>
Message-Id: <20200303150622.20133-5-alex.bennee@linaro.org>
This commit is contained in:
Robert Foley 2020-03-03 15:06:17 +00:00 committed by Alex Bennée
parent c9de39355a
commit fbb3aa29e2

View File

@ -312,7 +312,7 @@ class BaseVM(object):
def print_step(self, text): def print_step(self, text):
sys.stderr.write("### %s ...\n" % text) sys.stderr.write("### %s ...\n" % text)
def wait_ssh(self, seconds=300): def wait_ssh(self, wait_root=False, seconds=300):
# Allow more time for VM to boot under TCG. # Allow more time for VM to boot under TCG.
if not kvm_available(self.arch): if not kvm_available(self.arch):
seconds *= self.tcg_ssh_timeout_multiplier seconds *= self.tcg_ssh_timeout_multiplier
@ -320,7 +320,10 @@ class BaseVM(object):
endtime = starttime + datetime.timedelta(seconds=seconds) endtime = starttime + datetime.timedelta(seconds=seconds)
guest_up = False guest_up = False
while datetime.datetime.now() < endtime: while datetime.datetime.now() < endtime:
if self.ssh("exit 0") == 0: if wait_root and self.ssh_root("exit 0") == 0:
guest_up = True
break
elif self.ssh("exit 0") == 0:
guest_up = True guest_up = True
break break
seconds = (endtime - datetime.datetime.now()).total_seconds() seconds = (endtime - datetime.datetime.now()).total_seconds()