From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH OSSTEST v2 1/3] cs-adjust-flight: Add job-status to report job stats Date: Fri, 2 Oct 2015 13:05:47 +0100 Message-ID: <1443787549-7467-1-git-send-email-ian.campbell@citrix.com> References: <1443787531.11707.80.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1443787531.11707.80.camel@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: ian.jackson@eu.citrix.com, xen-devel@lists.xen.org Cc: Ian Campbell List-Id: xen-devel@lists.xenproject.org The return code of sg-run-job does not reflect the state of the job, which is instead written to the database. For the benefit of running tests in a loop until failure add a command to retrieve the status to stdout. Since this new op is not a change adjust the doc comment accordingly. While there add a doc string for the undocumented "branch" subcommand of cs-adjust-flight. Add a get-job-status command to the standalone helper script. Signed-off-by: Ian Campbell --- v2: Replaces "standalone: Add get-job-status to pick status out of standalone.db" with a variant using cs-adjust-flight --- cs-adjust-flight | 23 +++++++++++++++++++++-- standalone | 40 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/cs-adjust-flight b/cs-adjust-flight index 834e2c8..4e071c8 100755 --- a/cs-adjust-flight +++ b/cs-adjust-flight @@ -3,9 +3,9 @@ # destination flight must already exist # # args: -# [ ...] +# [ ...] # -# : +# : # copy # copy-jobs # jobs-list @@ -16,6 +16,8 @@ # runvar-perlop # recipe-set # intended-blessing +# branch +# job-status # # : # @@ -341,6 +343,23 @@ sub change__branch { verbose "$dstflight branch set to $branch\n"; } +sub change__job_status { + die unless @changes >= 1; + my $jobs = shift @changes; + + my $q = $dbh_tests->prepare(<execute($dstflight, $job); + my ($s) = $q->fetchrow_array(); + print "$job $s\n"; + }); +} + sub changes () { debug("CHANGES...\n"); diff --git a/standalone b/standalone index f64462e..b362b38 100755 --- a/standalone +++ b/standalone @@ -35,6 +35,11 @@ Operations: hosts next time. Otherwise osstest will complain if you change the host(s) which a job is running on on successive runs. +* get-job-status [cf] [JOB] + + Prints the status (pass, fail, running, etc) of the given job to + stdout. + Options: -c FILE, --config=FILE Use FILE as configuration file @@ -140,8 +145,9 @@ if [ $reuse -eq 0 ]; then read fi -if [ ! -f standalone.db ] ; then - echo "No standalone.db? Run standalone-reset." >&2 +db="standalone.db" +if [ ! -f $db ] ; then + echo "No $db? Run standalone-reset." >&2 exit 1 fi @@ -199,6 +205,22 @@ with_logging() { fi } +job_status() { + flight=$1; shift + job=$1; shift + + status=$(OSSTEST_CONFIG=$config \ + ./cs-adjust-flight $flight job-status $job) + + case "$status" in + $job\ *) echo ${status#$job };; + *) + echo >&2 "ERROR: $status" + exit 1 + ;; + esac +} + # other potential ops: # - run standalone reset @@ -304,6 +326,20 @@ case $op in OSSTEST_JOB=$job \ with_logging logs/$flight/$job.$ts.log ./$ts $hosts $@ ;; + + get-job-status) + need_flight; + + if [ $# -ne 1 ] ; then + echo "get-job-status: Need job" >&2 + exit 1 + fi + + job=$1; shift + + job_status $flight $job + + ;; *) echo "Unknown op $op" ; exit 1 ;; esac -- 2.5.3