2 # Batch EXecutor 2.0 -- Show Queued Jobs
3 # (c) 2011 Martin Mares <mj@ucw.cz>
17 "h|by-host!" => \$by_host,
18 "q|queue=s" => \$queue_name,
20 Usage: bq [<options>] [[!]<machine-or-class> ...]
23 -h, --by-host Show jobs sorted by host (default: by job)
24 -q, --queue=<name> Show jobs in the given queue
27 my @machines = BEX::Config::parse_machine_list(@ARGV ? @ARGV : '*');
28 my $queue = BEX::Queue->new($queue_name);
30 if ($queue->is_locked(undef, undef)) {
31 print "### Queue lock present\n\n";
39 for my $m (@machines) {
40 $mach_locked{$m} = $queue->is_locked($m, undef);
41 for my $j ($queue->scan($m)) {
42 push @{$jobs{$j}}, $m;
43 push @{$machs{$m}}, $j;
44 my $job = $queue->job_metadata($j);
45 $subj{$j} = ' (' . $job->{'Subject'} . ')';
46 my $st = $queue->read_job_status($m, $j);
47 if (defined($st->{'Time'}) && defined($st->{'Status'})) {
48 $stat{$m}{$j} = ' [' . $st->{'Status'} . ' on ' .
49 POSIX::strftime('%Y-%m-%d', localtime $st->{'Time'}) . ']';
53 if ($mach_locked{$m} || $queue->is_locked($m, $j)) {
54 $stat{$m}{$j} .= ' [LOCKED]';
60 for my $m (sort keys %machs) {
61 print "$m", ($mach_locked{$m} ? ' [LOCKED]' : ''), "\n";
62 for my $j (@{$machs{$m}}) {
63 print "\t$j", $subj{$j}, $stat{$m}{$j}, "\n";
67 for my $j (sort keys %jobs) {
68 print $j, $subj{$j}, "\n";
69 for my $m (sort @{$jobs{$j}}) {
70 print "\t$m", $stat{$m}{$j}, "\n";