|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 21/26] sg-run-job: Provide infrastructure for layers of nesting
Provides nested-layer-descend, which can be called in an individual
test job at the appropriate point (after the L1 has been set up).
The inner host is a guest of the outer host; powering it off means
destroying it. Putting the poweroff at this point in the loop, rather
than in per-host-finish, avoids powering off physical servers. The
use of `.' rather than `!.' for iffail means we do not power off
after failures (as we might want to preserve the state for debugging
etc).
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
Tested-by: Robert Ho <robert.hu@xxxxxxxxx>
Signed-off-by: Robert Ho <robert.hu@xxxxxxxxx>
---
v14: Squash syntax fix from Robert Ho into this patch
---
sg-run-job | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/sg-run-job b/sg-run-job
index 884a21d..8174ef7 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -39,6 +39,7 @@ proc per-host-finish {} {
proc run-job {job} {
global jobinfo builds flight ok need_xen_hosts anyfailed
+ global nested_layers_hosts
set ok 1
set anyfailed 0
@@ -52,6 +53,7 @@ proc run-job {job} {
set need_xen_hosts $nh
set need_build_host 0
}
+ set nested_layers_hosts {}
catching-otherwise blocked check-not-blocked
if {!$ok} return
@@ -70,7 +72,15 @@ proc run-job {job} {
if {$ok} { catching-otherwise fail run-job/$jobinfo(recipe) }
- per-host-finish
+ while 1 {
+ per-host-finish
+
+ if {![llength $nested_layers_hosts]} break
+
+ per-host-ts . = final-poweroff {ts-host-powercycle --power=0}
+
+ set need_xen_hosts [lunappend nested_layers_hosts]
+ }
if {$need_build_host && $anyfailed} {
run-ts !broken capture-logs ts-logs-capture + host
@@ -247,6 +257,15 @@ proc per-host-ts {iffail ident script args} {
}
}
+proc nested-layer-descend {nested_hosts} {
+ # We save need_xen_hosts on a stack in nested_layers_hosts
+ # It gets popped again during the cleanup part of run-job
+ global nested_layers_hosts need_xen_hosts
+ lappend nested_layers_hosts $need_xen_hosts
+ set need_xen_hosts $nested_hosts
+ per-host-prep
+}
+
#---------- test recipes ----------
proc need-hosts/test-debian-nomigr {} { return host }
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |