- my $cst = runcmd("controller slot=$slot show detail");
- for (@$cst) {
- chomp;
- next if /^$/;
- next if (/^\S.*in Slot $slot/);
- if (/^ *(Controller|Cache|Battery\/Capacitor) Status: (.*)$/) {
- my $system = $1;
- my $status = $2;
-
- if ($system eq 'Cache') {
- # Can be:
- # - 'OK'
- # - 'Not Configured' (for e.g. HP SSD Smart Path)
- # - 'Permanently Disabled'
- # - ...?
- next if $status =~ /^(OK|Not Configured)$/;
- if ($params->{'ignore-cache'}) {
- push @freetext, "$system: $status (ignored)";
- next;
- }
- }
-
- push @freetext, "$system: $status";
- if ($status ne 'OK') {
- next if ($params->{'no-battery'} && $system eq 'Battery/Capacitor');
- record('WARNING');
- };
- } elsif (/^ *(Cache Status Details): (Cable Error)/) {
- push @freetext, $2;
- record('CRITICAL');
- } elsif (/^ *(Battery\/Capacitor Count): (.*)/) {
- next if $params->{'no-battery'} || int($2) > 0;
- push @freetext, "Battery count: $2";
- record('CRITICAL');
- };
- };
-
- my $status = join(" - ", ((map { $_.": ".join(", ", @{$status{$_}}) } keys %status), @freetext));
+ my $status = join(" - ", ((map { $_.": ".join(", ", @{$status{$_}}) } keys %status), @{$controllers{$slot}}));