[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH OSSTEST v2] cs-adjust-flight: Add jobs-rename command which applies a perlop to job names



My intention was to allow creation of adhoc jobs based on a template
but modified e.g. to enable/disable XSM with a sequence something
like:

./cs-adjust-flight $flight copy-jobs $template test-foo-xsm
./cs-adjust-flight $flight jobs-rename test-foo-xsm 's/-xsm$//'
./cs-adjust-flight $flight runvar-set $job enable_xsm false
./cs-adjust-flight ... update %buildjob

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
v2: s/job-rename/jobs-rename/
    I left job-status alone.
---
 cs-adjust-flight | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/cs-adjust-flight b/cs-adjust-flight
index a72cd88..04f5a7e 100755
--- a/cs-adjust-flight
+++ b/cs-adjust-flight
@@ -18,6 +18,7 @@
 #   intended-blessing <intended-blessing>
 #   branch-set <new-branch>
 #   job-status <job-spec>
+#   jobs-rename <job-spec> <perl-expr>
 #
 # <foo-spec>:
 #   <foo-name>
@@ -371,6 +372,29 @@ END
     });
 }
 
+sub change__jobs_rename {
+    die unless @changes >= 2;
+    my $jobs = shift @changes;
+    my $perlop = shift @changes;
+
+    my $jobq = $dbh_tests->prepare(<<END);
+    UPDATE jobs
+       SET job = ?
+     WHERE flight = ? AND job = ?
+END
+    my $runvarq = $dbh_tests->prepare(<<END);
+    UPDATE runvars
+       SET job = ?
+     WHERE flight = ? AND job = ?
+END
+    for_jobs($dstflight, $jobs, sub {
+       my ($oldjob) = @_;
+       my $newjob = perlop_value ($oldjob, '', $perlop, $oldjob);
+       print "$oldjob renamed to $newjob\n";
+       $jobq->execute($newjob, $dstflight, $oldjob);
+       $runvarq->execute($newjob, $dstflight, $oldjob);
+    })
+}
 sub changes () {
     debug("CHANGES...\n");
 
-- 
2.6.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.