use JSON;
sub iter_jobs_summary {
my $self = shift;
my $submission = shift;
my $jobref = shift;
my $submission_id = $submission->{uuid};
my $start_time = $submission->{submission_time} || '';
my $project = $submission->{project} || '';
my $submission_obj = {};
$submission_obj->{$submission_id}->{project} = $project;
$submission_obj->{$submission_id}->{submission_time} = $start_time;
my $summary = {};
foreach my $job ( @{$jobref} ) {
my $jobname = $job->{job};
if ( $self->jobname ) {
next unless $self->jobname eq $jobname;
}
my $total_tasks = $job->{total_tasks};
$self->iter_tasks_summary( $submission_id, $jobname );
$self->task_data->{$jobname}->{total} = $total_tasks;
my $summary = $self->gen_job_tasks_summary($jobname);
$summary->{$jobname}->{total_tasks} = $total_tasks;
$submission_obj->{$submission_id}->{jobs}->{$jobname} = $summary;
$self->task_data( {} );
}
push( @{ $self->json_data }, $submission_obj );
}
sub gen_job_tasks_summary {
my $self = shift;
my $jobname = shift;
my $summary = {};
$summary->{$jobname} = {};
$summary->{$jobname}->{complete} =
$self->task_data->{$jobname}->{complete};
$summary->{$jobname}->{running} =
$self->task_data->{$jobname}->{running};
$summary->{$jobname}->{success} =
$self->task_data->{$jobname}->{success};
$summary->{$jobname}->{fail} = $self->task_data->{$jobname}->{fail};
return $summary;
}
1;