[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [OSSTEST PATCH 75/82] host reuse: New protocol between sg-run-job and ts-host-reuse
From: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Abolish post-test-ok (which runs only if successful) and replace it with final (which sets the runvar to indicate finality, and runs regardless). This allows a subsequent job which reuses the host to see that this job had finished using the host. This is relevant for builds, where a host can be reused even after a failed job. "Lies", where we claim the use of the host was done, are avoided (barring unlikely races) because selecthost de-finalises the runvar. Signed-off-by: Ian Jackson <iwj@xxxxxxxxxxxxxx> --- sg-run-job | 8 +++++++- ts-host-reuse | 25 ++++++++++++++++--------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/sg-run-job b/sg-run-job index 2feb67d9..dd76d4f2 100755 --- a/sg-run-job +++ b/sg-run-job @@ -124,7 +124,13 @@ proc run-job {job} { set ok 0 } - if {$ok} { per-host-ts . = { ts-host-reuse post-test-ok } } + if {[llength $need_build_host]} { + run-ts !broken = ts-host-reuse final host + } + set reuse {} + if {$ok} { lappend reuse --post-test-ok } + eval [list per-host-ts !broken = { ts-host-reuse final }] $reuse + if {$ok} { setstatus pass } if {[llength $need_build_host] && $ok} { jobdb::preserve-task 90 } diff --git a/ts-host-reuse b/ts-host-reuse index 21d77500..ae967304 100755 --- a/ts-host-reuse +++ b/ts-host-reuse @@ -154,15 +154,22 @@ sub act_start_test () { host_shared_mark_ready($ho, $sharetype, \%oldstate, 'mid-test'); } -sub act_post_test_ok () { - die if @ARGV; - compute_test_sharetype(); - $ho = selecthost($whhost); - return unless $ho->{Shared}; - die unless $ho->{Shared}{State} eq 'mid-test'; - post_test_cleanup(); - host_update_lifecycle_info($ho, 'final'); - host_shared_mark_ready($ho, $sharetype, 'mid-test', 'ready'); +sub act_final () { + if (!@ARGV) { + $ho = selecthost($whhost); + return unless $ho; + host_update_lifecycle_info($ho, 'final'); + } elsif ("@ARGV" eq "--post-test-ok") { + compute_test_sharetype(); + $ho = selecthost($whhost); + return unless $ho->{Shared}; + die unless $ho->{Shared}{State} eq 'mid-test'; + post_test_cleanup(); + host_update_lifecycle_info($ho, 'final'); + host_shared_mark_ready($ho, $sharetype, 'mid-test', 'ready'); + } else { + die; + } } $action =~ y/-/_/; -- 2.20.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |