Optimize CacheVault status checking

This commit is contained in:
Georg Schönberger
2013-10-25 13:05:43 +02:00
parent 37e02960e6
commit 5677c4aac5

View File

@@ -761,25 +761,27 @@ sub getCVStatus {
my @output = `$command`;
if($output[1] eq "Status = Success\n") {
my $blockid = 0;
my $currBlock;
foreach my $line (@output) {
if($line =~ /^(Cachevault_Info|Firmware_Status|GasGaugeStatus)/){
$blockid++;
if($line =~ /^(Cachevault_Info|Firmware_Status)/){
$currBlock = $1;
next;
}
if($blockid == 1 && $line =~ '^State'){
$line =~ /([a-zA-Z0-9]*)$/;
if($1 ne "Optimal") {
$status = getExitState($status, STATE_WARNING);
if($VERBOSITY == 0){$statusMessage .= "CV state not optimal, ";}
if($VERBOSITY >= 1){$statusMessage .= "CV Cachevault_Info state $1, "; }
if(defined($currBlock)){
if($currBlock eq 'Cachevault_Info' && $line =~ '^State'){
$line =~ /([a-zA-Z0-9]*)$/;
if($1 ne "Optimal") {
$status = getExitState($status, STATE_WARNING);
if($VERBOSITY == 0){$statusMessage .= "CV state not optimal, ";}
if($VERBOSITY >= 1){$statusMessage .= "CV Cachevault_Info state $1, "; }
}
}
}
if($blockid == 2 && $line =~ '^Replacement required'){
$line =~ /([a-zA-Z0-9]*)$/;
if($1 ne "No") {
$status = getExitState($status, STATE_WARNING);
$statusMessage .= "CV replacement required, ";
elsif($currBlock eq 'Firmware_Status' && $line =~ '^Replacement required'){
$line =~ /([a-zA-Z0-9]*)$/;
if($1 ne "No") {
$status = getExitState($status, STATE_WARNING);
$statusMessage .= "CV replacement required, ";
}
}
}
}