]> mj.ucw.cz Git - bex.git/commitdiff
"bex queue --filenames" can be used to show job file names
authorMartin Mares <mj@ucw.cz>
Fri, 21 Sep 2012 13:29:07 +0000 (15:29 +0200)
committerMartin Mares <mj@ucw.cz>
Fri, 21 Sep 2012 13:29:07 +0000 (15:29 +0200)
lib/bin/bex-queue

index cfeb93058b7e1e708a981e811a07a662bf7f9a09..9b01a4e4fd4aae2800e8a529909599e1ad0abcc5 100755 (executable)
@@ -14,6 +14,7 @@ my $op_rm;
 my $op_move_to;
 
 my $queue_name;
+my $filenames;
 my $given_job;
 my $summary;
 my $why;
@@ -29,6 +30,7 @@ Actions:
     --move-to=<queue>  Move jobs to a different queue
 
 Options:
+-f, --filenames                Show filenames of jobs and log files
 -j, --job=<id>         Act on the specified job (default: on all)
 -q, --queue=<name>     Act on the given queue
 -s, --summary          Show only a summary
@@ -43,6 +45,7 @@ GetOptions(
        "h|by-host!" => \$op_by_host,
        "rm!" => \$op_rm,
        "move-to=s" => \$op_move_to,
+       "f|filenames!" => \$filenames,
        "j|job=s" => \$given_job,
        "q|queue=s" => \$queue_name,
        "s|summary!" => \$summary,
@@ -92,6 +95,10 @@ sub do_ls()
                        my $s = $st->{"Status"} // "UNKNOWN";
                        $cnt_by_job{$j}{$s}++;
                        $cnt_by_mach{$m}{$s}++;
+                       $why{$m}{$j} = "";
+                       if ($filenames) {
+                               $why{$m}{$j} .= "\t\t== Job file: " . $queue->queue_file($m, $j) . "\n";
+                       }
                        if (defined($st->{'Time'}) && defined($st->{'Status'})) {
                                $stat{$m}{$j} = ' [' . $st->{'Status'} . ' on ' .
                                                POSIX::strftime('%Y-%m-%d', localtime $st->{'Time'}) . ']';
@@ -99,7 +106,7 @@ sub do_ls()
                                        my $lines = $why ? $why : 3;
                                        my $log = $queue->log_file($m, $j);
                                        if (-f $log) {
-                                               $why{$m}{$j} = join("", map { "\t\t>> $_" } `tail -n$lines $log`);
+                                               $why{$m}{$j} .= join("", map { "\t\t>> $_" } `tail -n$lines $log`);
                                        }
                                }
                        } else {
@@ -131,7 +138,7 @@ sub do_ls()
                                print "$m", ($mach_locked{$m} ? ' [LOCKED]' : ''), "\n";
                                for my $j (@{$machs{$m}}) {
                                        print "\t" . $queue->job_name($j) . $stat{$m}{$j}, "\n";
-                                       print $why{$m}{$j} // "";
+                                       print $why{$m}{$j};
                                }
                        }
                } else {
@@ -139,7 +146,7 @@ sub do_ls()
                                print $queue->job_name($j), "\n";
                                for my $m (sort @{$jobs{$j}}) {
                                        print "\t$m", $stat{$m}{$j}, "\n";
-                                       print $why{$m}{$j} // "";
+                                       print $why{$m}{$j};
                                }
                        }
                }