##
$key = "class_name"
$list_1 = "list_of_successful_jobIDs"
$val1 = "12345",
$val2 = "65432".....(and so on)
$list_2 = "list_of_failed_jobIDs"
$val = "98765",
$val2 = "34567".....{and so on)
$list_3 = "list_of_part_success_jobIDs"
$val = "121212",
$val2 = "393939".....{and so on)
####
use strict;
use NBUX;
my $newkey;
my %jobs = bpdbjobs();
my %jobsClassKey;
my %classClient;
my %masterClassHash;
my (@successfuljobs, @partiallysuccessful,@failedjobs);
## populate 2nd hash with class as key
foreach my $key (keys %jobs) {
$newkey = $jobs{$key}->{class};
$jobsClassKey{$newkey} = $jobs{$key};
}
foreach my $class (sort keys %jobsClassKey) {
my $jobid = $jobsClassKey{$class}->{jobid};
my $status = $jobsClassKey{$class}->{status};
push @{$masterClassHash{$class}{$successfuljobs}} , $jobid if ($status == 0);
push @{$masterClassHash{$class}{$partiallysuccessful}} , $jobid if ($status == 1);
push @{$masterClassHash{$class}{$failedjobs}} , $jobid if (($status > 1) && \
($status != 150)); # Termination requested by admin
}
####
# Partially successful
if ($#partiallysuccessful > 0) {
print <
$#partiallysuccessful partial successfuly jobs
Class
Hostname
Job-ID
Schedule
Status
Server
Files
Tries
Start
End
Duration
Mbytes
Speed
EOC
foreach $jobid ( sort @partiallysuccessful ) {
my $thisjob = $alljobs { $jobid };
my $MB = $thisjob->{kbytes} / 1000;
&print_report_line($thisjob->{class},
$thisjob->{client},
$thisjob->{jobid},
$thisjob->{schedule},
$thisjob->{status},
$thisjob->{server},
$thisjob->{files},
$thisjob->{trycount},
&format_hhmmss_time($thisjob->{started}),
&format_hhmmss_time($thisjob->{ended}),
$thisjob->{elapsed},
#&beautify_number($thisjob->{kbytes}),
&round($MB),
($thisjob->{elapsed} > 0 ?
int(($thisjob->{kbytes}/$thisjob->{elapsed})*100)/100 : "0.00"));
}