-
- my $tries = $self->get_dle_info(@$dle_entry, "tries");
-
- if (!@$tries) {
- $self->{flags}{results_missing} = 1;
- $self->{flags}{exit_status} |= STATUS_MISSING;
- last;
- }
+ my $alldumps = $self->get_dle_info(@$dle_entry, 'dumps');
+ my $driver = $self->get_dle_info(@$dle_entry, 'driver');
+ my $planner = $self->get_dle_info(@$dle_entry, 'planner');
+
+ if ($planner && $planner->{'status'} eq 'fail') {
+ $self->{flags}{dump_failed} = 1;
+ } elsif ($planner && $planner->{'status'} eq 'skipped') {
+ # We don't want these to be counted as missing below
+ } elsif (!defined $alldumps->{$self->{'run_timestamp'}} and
+ !$driver and
+ !$planner) {
+ $self->{flags}{results_missing} = 1;
+ $self->{flags}{exit_status} |= STATUS_MISSING;
+ } else {
+ #get latest try
+ my $tries = $alldumps->{$self->{'run_timestamp'}};
+ my $try = @$tries[-1];
+
+ if (exists $try->{dumper} && $try->{dumper}->{status} eq 'fail') {
+ $self->{flags}{dump_failed} = 1;
+ } elsif ((defined($try->{'chunker'}) &&
+ $try->{'chunker'}->{status} eq 'success') ||
+ (defined($try->{'taper'}) &&
+ $try->{'taper'}->{status} eq 'done')) {
+ #chunker or taper success, use dumper status
+ if (exists $try->{dumper} && $try->{dumper}->{status} eq 'strange') {
+ $self->{flags}{dump_strange} = 1;
+ }
+ } else {
+ #chunker or taper failed, the dump is not valid.
+ $self->{flags}{dump_failed} = 1;
+ }
+ }