[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 4/5] power: ts-freebsd-host-install: Use power_reboot_attempts
We look at the installer environment uptime, to | check that this is the installer environment as requested by the comment | in particular $await must only succeed if the host really did | reboot into the boot environment that $await expects. near the top of power_reboot_attempts CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- ts-freebsd-host-install | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/ts-freebsd-host-install b/ts-freebsd-host-install index 53daeefc..3c3e9c34 100755 --- a/ts-freebsd-host-install +++ b/ts-freebsd-host-install @@ -259,14 +259,31 @@ END } # Switch off, setup PXE and switch on to the installer -power_state($ho, 0); -setup_netboot_installer(); -power_cycle_sleep($ho); -power_state($ho, 1); - -# Wait for the host to finish booting -logm("Waiting for the installer to boot"); -await_tcp(get_timeout($ho,'reboot',$timeout), 5, $ho); +power_reboot_attempts($ho, sub { + setup_netboot_installer(); +}, sub { + # Wait for the host to finish booting + logm("Waiting for the installer to boot"); + my $wait_start = time; + await_tcp(get_timeout($ho,'reboot',$timeout), 5, $ho); + + # We want to check that we actually rebooted. We do this by + # comparing the (putative) installer environment's uptime, + # with the time we spent waiting for it to appear. + my $timeoutput = target_cmd_output_root($ho, + 'date +%s; sysctl -n kern.boottime'); + logm("got:\n$timeoutput"); + $timeoutput =~ s{^(\d+)\n}{} or die "date: $timeoutput ?"; + my $target_now = $1; + $timeoutput =~ m{\ssec\s?=\s?(\d+)\b} or die "sysctl: $timeoutput ?"; + my $target_boottime = $1; + + my $uptime = $target_now - $target_boottime; + my $elapsed = time - $wait_start; + logm("uptime=$uptime elapsed=$elapsed"); + $uptime < $elapsed or die "uptime >= elapsed"; + +}, undef, 'install'); if ($bootonly) { hostprop_putative_record($ho, "MemdiskAppend", $memdisk_append) -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |