Changeset 295eff6f114078d706a4c577e2b2f5d7b1fb5944

Show
Ignore:
Timestamp:
04/15/09 18:04:12 (5 years ago)
Author:
Mark Harrison <mark@omniti.com>
git-committer:
Mark Harrison <mark@omniti.com> 1239818652 +0000
git-parent:

[bd29165483e7ee209b9911a2a3ebf64ab9983548]

git-author:
Mark Harrison <mark@omniti.com> 1239818652 +0000
Message:

MDSTAT module, hopefully working

git-svn-id: https://labs.omniti.com/resmon/trunk@189 8c0face9-b7db-6ec6-c4b3-d5f7145c7d55

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lib/Resmon/Module/MDSTAT.pm

    rb44d6b1 r295eff6  
    1111    open FH, "<$statfile"; 
    1212    my $getnext = 0; 
    13     my $status = "BAD"; 
     13    my $status = "OK"; 
     14    my @message = (); 
    1415    while (<FH>) { 
    1516        chomp; 
    16         if ($getnext == 1) { 
    17             print STDERR $_
    18             $getnext = 0
    19         } elsif (/^md[0-9]+\s*:\s+/) { 
     17        if (/^(md[0-9]+)\s*:\s+/) { 
     18            my $array = $1
     19            my $messageline = "$array "
     20            my @baddevs = (); 
    2021            foreach my $part (split(/ /,$')) { 
    21                 if ($part =~ /active/) { 
    22                     $status = "OK"; 
    23                 } 
    24                 # TODO - degraded etc. 
    25                 elsif ($part =~ /^([a-z0-9]+)\[(\d+)\](?:\((\S+)\))?$/) { 
    26                     # We have a drive status 
    27                     print STDERR "status: $1 $2 $3\n"; 
     22                if ($part eq "active") { 
     23                    $messageline .= "active "; 
     24                } elsif ($part eq "inactive") { 
     25                    $status = "BAD"; 
     26                    $messageline .= "inactive "; 
     27                } elsif ($part =~ /^([a-z0-9]+)\[(\d+)\](?:\((\S+)\))?$/) { 
     28                    if ($3 eq "F") { 
     29                        $status = "BAD"; 
     30                        push @baddevs, $1; 
     31                    } 
    2832                } 
    2933            } 
    30             $getnext = 1; 
     34            chop $messageline; 
     35            if (@baddevs) { 
     36                $messageline = "$messageline - " . join(', ', @baddevs) . 
     37                    " faulted"; 
     38            } 
     39            push @message, $messageline; 
    3140        } 
    3241    } 
     42    return $status, join('; ', @message); 
    3343}; 
    34441;