Whitespace and shebang cleanup
[mirror/dsa-nagios.git] / dsa-nagios-checks / checks / dsa-check-mirrorsync
index fc913b0..488a7bc 100755 (executable)
@@ -105,11 +105,12 @@ foreach my $slave (@slaves) {
                        push @exitstatus, "Cannot parse tracefile on $slave";
                };
                print "$slave last synced $synctime\n" if $params->{'verbose'};
-               $status->{$slave}->{'synced'} = $synctime; 
+               $status->{$slave}->{'synced'} = $synctime;
        }
        else {
                push @exitstatus, "$slave broken: " . $response->status_line; 
                $status->{$slave}->{'error'} = $response->status_line;
+               $status->{$slave}->{'synced'} = 0;
                $exitcode = $CRITICAL;
                push @critical, $slave;
        }
@@ -120,10 +121,11 @@ my %seen;
 my $o_sync = scalar(grep !$seen{$_}++, map{$status->{$_}->{'synced'}} keys(%{$status}));
 if ($o_sync > 1) {
        $exitcode = $CRITICAL; 
-       $o_sync -= 1;
        my @mirrors =  sort { $status->{$a}->{'synced'} <=> $status->{$b}->{'synced'}  } keys %{$status};
-       push @exitstatus, "$o_sync mirror(s) not in sync (from oldest to newest): ". 
-               join(",", splice(@mirrors,0,$o_sync));  
+       my @not_most_recent = grep { $status->{$_}->{'synced'} <=> $status->{$mirrors[-1]}->{'synced'} } @mirrors;
+       $o_sync = scalar @not_most_recent;
+       push @exitstatus, "$o_sync mirror(s) not in sync (from oldest to newest): ".
+               join(", ", @not_most_recent);
 } else {
        print "All mirrors unique\n" if $params->{'verbose'};
 }