[BACK]Return to check_bioctl CVS log [TXT][DIR] Up to [local] / nagios / check_bioctl

Diff for /nagios/check_bioctl/check_bioctl between version 1.14 and 1.15

version 1.14, 2009/11/23 21:58:04 version 1.15, 2009/11/23 22:24:45
Line 1 
Line 1 
 #!/usr/bin/perl -T  #!/usr/bin/perl -T
 # $RedRiver: check_bioctl,v 1.13 2009/11/23 21:57:31 andrew Exp $  # $RedRiver: check_bioctl,v 1.14 2009/11/23 21:58:04 andrew Exp $
 ########################################################################  ########################################################################
 # check_bioctl *** A nagios check for OpenBSD bioctl  # check_bioctl *** A nagios check for OpenBSD bioctl
 #  #
Line 10 
Line 10 
   
 local %ENV = ();  local %ENV = ();
   
 my $NAGIOS_OUTPUT = 1;  my $NAGIOS_OUTPUT = 0;
   
 my $License = <<'EOL';  my $License = <<'EOL';
 Copyright (c) 2009 Andrew Fresh <andrew@afresh1.com>  Copyright (c) 2009 Andrew Fresh <andrew@afresh1.com>
Line 64 
Line 64 
     Invalid     => 'CRITICAL',      Invalid     => 'CRITICAL',
 );  );
   
 my $state = 'UNKNOWN';    # tells whether the it is warning, critical, or OK  
 my @devices;  my @devices;
 my $opt_h;  my $opt_h;
 my $opt_V;  my $opt_V;
Line 95 
Line 94 
 my %STATES  = check_status( \%VOLUMES );  my %STATES  = check_status( \%VOLUMES );
   
 my $have_results = 0;  my $have_results = 0;
 $state = 'OK';  my $state        = 'OK';
 foreach my $error ( sort { $ERRORS{$b} <=> $ERRORS{$a} } keys %ERRORS ) {  foreach my $error ( sort { $ERRORS{$b} <=> $ERRORS{$a} } keys %ERRORS ) {
     if ( exists $STATES{$error} ) {      if ( exists $STATES{$error} ) {
         $have_results++;          $have_results++;
Line 152 
Line 151 
   
 {  {
     my $vid;      my $vid;
       my $controller;
   
     sub parse_bioctl_line {      sub parse_bioctl_line {
         my ($line) = @_;          my ($line) = @_;
Line 166 
Line 166 
             s/\s+$//xms;              s/\s+$//xms;
         }          }
   
         my ( $controller, $id, $status, $size, $dev, $details, $name ) = @o;          my ( $c, $id, $status, $size, $dev, $details, $name ) = @o;
         my $index = $id;          my $index = $id;
         if ($controller) {          if ($c) {
             $vid = $id;              $vid        = $id;
               $controller = $c;
         }          }
         else {          else {
             $index = "$vid.$id";              $index = "$vid.$id";
         }          }
   
         my %item = (          return $index,
             type       => 'volume',              {
             controller => $controller,              controller => $controller,
             id         => $id,              id         => $id,
             status     => $status,              status     => $status,
Line 185 
Line 186 
             details    => $details,              details    => $details,
             name       => $name,              name       => $name,
             volume_id  => $vid,              volume_id  => $vid,
         );              };
   
         return $index, \%item;  
     }      }
 }  }
   
Line 195 
Line 194 
     my ($volumes) = @_;      my ($volumes) = @_;
   
     my %states;      my %states;
     foreach my $device ( sort keys %{$volumes} ) {      foreach my $d ( sort keys %{$volumes} ) {
         foreach my $index ( sort keys %{ $volumes->{$device} } ) {          foreach my $i ( sort { $a <=> $b } keys %{ $volumes->{$d} } ) {
             my $cur_volume = $volumes->{$device}->{$index};              my $volume = $volumes->{$d}->{$i};
             my $cur_state  = $Status_Map{ $cur_volume->{'status'} }              my $state = $Status_Map{ $volume->{'status'} } || 'UNKNOWN';
                 || 'UNKNOWN';  
   
             if ( $cur_volume->{'device'} =~ /^\d+:\d/xms ) {              push @{ $states{$state} },
                 push @{ $states{$cur_state} },                  sprintf(
                     sprintf(                  "%5s %-7s %-11s %s",
                     "%5s %-7s %-11s %s",                  $volume->{'controller'}, $volume->{'device'},
                     $cur_volume->{'volume'}{'controller'},                  $volume->{'status'},     $volume->{'name'}
                     $cur_volume->{'device'},                  );
                     $cur_volume->{'status'},  
                     $cur_volume->{'name'}  
                     );  
             }  
             else {  
                 push @{ $states{$cur_state} },  
                     sprintf( "%5s %-7s %s",  
                     $cur_volume->{'controller'},  
                     $cur_volume->{'device'},  
                     $cur_volume->{'status'} );  
             }  
         }          }
     }      }
     return %states;      return %states;

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>