From: Ian Jackson Date: Thu, 17 Sep 2015 12:40:53 +0000 (+0100) Subject: cs-adjust-flight: Break out job removal machinery X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ced96a0368f4fa6e967dd28b64cda418d0441368;p=osstest.git cs-adjust-flight: Break out job removal machinery Make @job_rm_qs a global variable (initialised idempotently by a new function prep_rm_jobs) and $rm_job into a named global subroutine do_rm_job. No functional change. Signed-off-by: Ian Jackson Acked-by: Ian Campbell --- v2: New patch --- diff --git a/cs-adjust-flight b/cs-adjust-flight index bc66fc9..9030e92 100755 --- a/cs-adjust-flight +++ b/cs-adjust-flight @@ -134,11 +134,25 @@ sub for_jobs ($$$;$) { 'flight = ?', [$flight]); } +our @job_rm_qs; + +sub prep_rm_jobs () { + return if @job_rm_qs; + @job_rm_qs = map { $dbh_tests->prepare($_) } + ("DELETE FROM runvars WHERE flight = ? AND job = ?", + "DELETE FROM jobs WHERE flight = ? AND job = ?"); +} + +sub do_rm_job ($) { + my ($job) = @_; + my $count = 0; + $count += $_->execute($dstflight, $job) foreach @job_rm_qs; + verbose "$dstflight.$job job deleted\n" if $count; +} + sub copy_jobs ($$) { my ($srcflight, $jobs) = @_; - my @job_rm_qs = map { $dbh_tests->prepare($_) } - ("DELETE FROM runvars WHERE flight = ? AND job = ?", - "DELETE FROM jobs WHERE flight = ? AND job = ?"); + prep_rm_jobs(); my @job_copy_qs = map { $dbh_tests->prepare($_) } ("INSERT INTO jobs". " SELECT ?, job, recipe, 'queued'". @@ -148,14 +162,8 @@ sub copy_jobs ($$) { " SELECT ?, job, name, val, 'f'". " FROM runvars". " WHERE flight = ? AND job = ? AND NOT synth"); - my $rm_job = sub { - my ($job) = @_; - my $count = 0; - $count += $_->execute($dstflight, $job) foreach @job_rm_qs; - verbose "$dstflight.$job job deleted\n" if $count; - }; - for_jobs($dstflight, $jobs, $rm_job, 1); - for_jobs($srcflight, $jobs, $rm_job); + for_jobs($dstflight, $jobs, \&do_rm_job, 1); + for_jobs($srcflight, $jobs, \&do_rm_job); for_jobs($srcflight, $jobs, sub { my ($job) = @_; $_->execute($dstflight, $srcflight, $job) foreach @job_copy_qs;