diff mbox

[OSSTEST,11/15] sg-run-job: Make catching-otherwise honour $ok

Message ID 1498054447-11281-12-git-send-email-ian.jackson@eu.citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ian Jackson June 21, 2017, 2:14 p.m. UTC
This is more regular and abolishes a number of explicit $ok tests in
run-job.

Of the call sites:
 * "catching-otherwise blocked check-not-blocked" near the top of
   run-job is soon after $ok is set, so NFC.
 * The other call sites in run-job all test $ok explicitly, so NFC.
 * The one call site outside run-job (in examine-host-examine)
   contains only calls to run-ts, and to examine-host-install-* which
   itself only contains similar calls.  These all therefore honour $ok
   already.  So NFC.

While we are here:
 * Add a doc comment.
 * Do some slight whitespace fixups.

Overall, no functional change.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 sg-run-job | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)
diff mbox

Patch

diff --git a/sg-run-job b/sg-run-job
index 66c2c19..654ba83 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -62,7 +62,7 @@  proc run-job {job} {
     }
     set nested_layers_hosts {}
 
-    catching-otherwise blocked            check-not-blocked
+    catching-otherwise blocked check-not-blocked
     if {!$ok} return
 
     if {[llength $need_xen_hosts]} {
@@ -73,19 +73,18 @@  proc run-job {job} {
 
     if {$ok} { setstatus running                                          }
 
-    if {$ok && ![catch { info args prep-job/$jobinfo(recipe) }]} \
-        {      catching-otherwise fail     prep-job/$jobinfo(recipe)      }
+    if {![catch { info args prep-job/$jobinfo(recipe) }]} \
+        { catching-otherwise fail prep-job/$jobinfo(recipe) }
 
     if {$ok} { set syslog [spawn-ts broken = | ts-syslog-server]          }
 
-    if {$ok && $need_build_host} \
-        { catching-otherwise broken prepare-build-host }
+    if {$need_build_host} { catching-otherwise broken prepare-build-host }
 
     per-host-ts broken  host-install/@(*) ts-host-install-twice
 
     per-host-prep
 
-    if {$ok} { catching-otherwise fail      run-job/$jobinfo(recipe)      }
+    catching-otherwise fail run-job/$jobinfo(recipe)
 
     while 1 {
 	per-host-finish
@@ -126,8 +125,15 @@  proc run-job {job} {
 }
 
 proc catching-otherwise {failst script} {
+    # Executes $script.
+    # If job is already a failure (ie not $ok), skips it (ie does nothing).
+    # If any Tcl exception is thrown, declares the job a failure.
+    # (ie sets job status to $failst, and sets anyfailed to 1 and ok to 0)
+
     global anyfailed flight jobinfo ok
 
+    if {!$ok} return
+
     if {[catch {
         uplevel 1 $script
     } emsg]} {