]> mj.ucw.cz Git - bex.git/commitdiff
add: When a job ID is reused, the old contents are overwritten
authorMartin Mares <mj@ucw.cz>
Thu, 16 Feb 2012 16:33:20 +0000 (17:33 +0100)
committerMartin Mares <mj@ucw.cz>
Thu, 16 Feb 2012 16:33:20 +0000 (17:33 +0100)
lib/bin/bex-add
lib/perl/BEX/Queue.pm

index 64945f95db36305b33da11ed1118d8aa3bf05e55..6cfbd17a25f2871dccb4ec9ca2f38629bec03755 100755 (executable)
@@ -92,6 +92,7 @@ if (defined $requeue_id) {
 
 # Put the job to the queue
 print "New job ", $job->id, "\n";
+$queue->save_job($job);
 for my $m (@machines) {
        if ($queue->enqueue($m, $job)) {
                $queue->update_job_status($m, $job->id, 'NEW');
index acf537ca1ace50407372f05cd6d9471f460c6437..298c25d68373fedf89e8cc5c7bbdb1beb93ccd02 100644 (file)
@@ -73,14 +73,19 @@ sub job_file($$) {
        return $queue->{'Path'} . '/jobs/' . $jid. '.job';
 }
 
+sub save_job($$) {
+       my ($queue, $job) = @_;
+       # If the job already exists, it is shamelessly rewritten by new contents
+       $job->save($queue->job_file($job->id));
+}
+
 sub enqueue($$$) {
        my ($queue, $machine, $job) = @_;
+       # The job must be already saved to the current queue
        my $qf = $queue->queue_file($machine, $job->id);
        if (-f $qf) {
                return 0;
        }
-       my $fn = $queue->job_file($job->id);
-       -f $fn or $job->save($fn);
        my $dir = $queue->host_dir($machine);
        -d $dir or mkdir $dir or die "Cannot create directory $dir: $!";
        symlink '../../jobs/' . $job->id . '.job', $qf or die "Cannot create $qf: $!";