my $queue_name;
my $given_job;
+my $summary;
sub usage() {
print <<AMEN ;
Options:
-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
AMEN
exit 0;
}
+Getopt::Long::Configure("bundling");
GetOptions(
"by-job!" => \$op_by_job,
"h|by-host!" => \$op_by_host,
"move-to=s" => \$op_move_to,
"j|job=s" => \$given_job,
"q|queue=s" => \$queue_name,
+ "s|summary!" => \$summary,
"help" => \&usage,
) or die "Try `bex queue --help' for more information.\n";
{
my %stat = ();
my %mach_locked = ();
+ my %cnt_by_job = ();
+ my %cnt_by_mach = ();
for my $m (keys %machs) {
$mach_locked{$m} = $queue->is_locked($m, undef);
for my $j (@{$machs{$m}}) {
my $st = $queue->read_job_status($m, $j);
+ my $s = $st->{"Status"} // "UNKNOWN";
+ $cnt_by_job{$j}{$s}++;
+ $cnt_by_mach{$m}{$s}++;
if (defined($st->{'Time'}) && defined($st->{'Status'})) {
$stat{$m}{$j} = ' [' . $st->{'Status'} . ' on ' .
POSIX::strftime('%Y-%m-%d', localtime $st->{'Time'}) . ']';
print "### Queue lock present\n\n";
}
- if ($op_by_host) {
- for my $m (sort keys %machs) {
- print "$m", ($mach_locked{$m} ? ' [LOCKED]' : ''), "\n";
- for my $j (@{$machs{$m}}) {
- print "\t" . $queue->job_name($j) . $stat{$m}{$j}, "\n";
+ if ($summary) {
+ if ($op_by_host) {
+ for my $m (sort keys %cnt_by_mach) {
+ print "$m: ", join(" ", map { "$_:" . $cnt_by_mach{$m}{$_} } sort keys %{$cnt_by_mach{$m}}), "\n";
+ }
+ } else {
+ for my $j (sort keys %cnt_by_job) {
+ print $queue->job_name($j), ": ", join(" ", map { "$_:" . $cnt_by_job{$j}{$_} } sort keys %{$cnt_by_job{$j}}), "\n";
}
}
} else {
- for my $j (sort keys %jobs) {
- print $queue->job_name($j), "\n";
- for my $m (sort @{$jobs{$j}}) {
- print "\t$m", $stat{$m}{$j}, "\n";
+ if ($op_by_host) {
+ for my $m (sort keys %machs) {
+ print "$m", ($mach_locked{$m} ? ' [LOCKED]' : ''), "\n";
+ for my $j (@{$machs{$m}}) {
+ print "\t" . $queue->job_name($j) . $stat{$m}{$j}, "\n";
+ }
+ }
+ } else {
+ for my $j (sort keys %jobs) {
+ print $queue->job_name($j), "\n";
+ for my $m (sort @{$jobs{$j}}) {
+ print "\t$m", $stat{$m}{$j}, "\n";
+ }
}
}
}