git.lirion.de

Of git, get, and gud

summaryrefslogtreecommitdiffstats
path: root/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm
diff options
context:
space:
mode:
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-xnagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/BatterySubsystem.pm124
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;
+