diff options
author | H. P. <coding _æ_ lirion.de> | 2019-04-17 19:07:19 +0200 |
---|---|---|
committer | H. P. <coding _æ_ lirion.de> | 2019-04-17 19:07:19 +0200 |
commit | 1e2387474a449452b78520b9ad96a8b4b5e99722 (patch) | |
tree | 836889471eec7d2aac177405068e2a8f1e2b1978 /nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm | |
download | nagios-plugins-contrib-1e2387474a449452b78520b9ad96a8b4b5e99722.tar.bz2 |
initial commit of source fetch
Diffstat (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm')
-rwxr-xr-x | nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm new file mode 100755 index 0000000..82da78d --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm @@ -0,0 +1,124 @@ +package HP::Proliant::Component::BatterySubsystem; +our @ISA = qw(HP::Proliant::Component); + +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub new { + my $class = shift; + my %params = @_; + my $self = { + runtime => $params{runtime}, + rawdata => $params{rawdata}, + method => $params{method}, + condition => $params{condition}, + status => $params{status}, + sysbatteries => [], + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + bless $self, $class; + if ($self->{method} eq 'snmp') { + return HP::Proliant::Component::BatterySubsystem::SNMP->new(%params); + } elsif ($self->{method} eq 'cli') { + #return HP::Proliant::Component::BatterySubsystem::CLI->new(%params); + } else { + die "unknown method"; + } + return $self; +} + +sub check { + my $self = shift; + my $errorfound = 0; + $self->add_info('checking sysbatteries'); + if (scalar (@{$self->{sysbatteries}}) == 0) { + #$self->overall_check(); + $self->add_info('no sysbatteries found'); + } else { + foreach (sort { $a->{cpqHeSysBatteryIndex} <=> $b->{cpqHeSysBatteryIndex}} + @{$self->{sysbatteries}}) { + $_->check(); + } + } +} + +sub dump { + my $self = shift; + foreach (@{$self->{sysbatteries}}) { + $_->dump(); + } +} + + +package HP::Proliant::Component::BatterySubsystem::Battery; +our @ISA = qw(HP::Proliant::Component::BatterySubsystem); + +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub new { + my $class = shift; + my %params = @_; + my $self = { + runtime => $params{runtime}, + cpqHeSysBatteryChassis => $params{cpqHeSysBatteryChassis}, + cpqHeSysBatteryIndex => $params{cpqHeSysBatteryIndex}, + cpqHeSysBatteryPresent => $params{cpqHeSysBatteryPresent}, + cpqHeSysBatteryCondition => $params{cpqHeSysBatteryCondition}, + cpqHeSysBatteryStatus => $params{cpqHeSysBatteryStatus}, + cpqHeSysBatteryCapacityMaximum => $params{cpqHeSysBatteryCapacityMaximum}, + cpqHeSysBatteryProductName => $params{cpqHeSysBatteryProductName}, + cpqHeSysBatteryModel => $params{cpqHeSysBatteryModel}, + cpqHeSysBatterySerialNumber => $params{cpqHeSysBatterySerialNumber}, + cpqHeSysBatteryFirmwareRev => $params{cpqHeSysBatteryFirmwareRev}, + cpqHeSysBatterySparePartNum => $params{cpqHeSysBatterySparePartNum}, + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + $self->{name} = $params{name} || + $self->{cpqHeSysBatteryChassis}.':'.$self->{cpqHeSysBatteryIndex}; + bless $self, $class; + return $self; +} + +sub check { + my $self = shift; + $self->blacklist('sba', $self->{name}); + my $info = sprintf "battery %s/%s has condition %s and status %s", + $self->{cpqHeSysBatteryChassis}, + $self->{cpqHeSysBatteryIndex}, + $self->{cpqHeSysBatteryCondition}, + $self->{cpqHeSysBatteryStatus}; + if ($self->{cpqHeSysBatteryCondition} eq "ok") { + } elsif ($self->{cpqHeSysBatteryCondition} eq "degraded") { + $self->add_info($info); + $self->add_message(WARNING, $self->{info}); + } elsif ($self->{cpqHeSysBatteryCondition} eq "failed") { + $self->add_info($info); + $self->add_message(CRITICAL, $self->{info}); + } else { + $self->add_info($info); + $self->add_message(UNKNOWN, $self->{info}); + } +} + +sub dump { + my $self = shift; + printf "[SYSBATTERY_%s_%s]\n", $self->{cpqHeSysBatteryChassis}, + $self->{cpqHeSysBatteryIndex}; + foreach (qw(cpqHeSysBatteryChassis cpqHeSysBatteryIndex + cpqHeSysBatteryPresent cpqHeSysBatteryCondition cpqHeSysBatteryStatus + cpqHeSysBatteryCapacityMaximum cpqHeSysBatteryProductName + cpqHeSysBatteryModel cpqHeSysBatterySerialNumber + cpqHeSysBatteryFirmwareRev cpqHeSysBatterySparePartNum)) { + printf "%s: %s\n", $_, $self->{$_}; + } + printf "info: %s\n\n", $self->{info}; +} + + +1; + |