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/BladeSystem/Component/PowerSupplySubsystem.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/BladeSystem/Component/PowerSupplySubsystem.pm')
-rwxr-xr-xnagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/PowerSupplySubsystem.pm238
1 files changed, 238 insertions, 0 deletions
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/PowerSupplySubsystem.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/PowerSupplySubsystem.pm
new file mode 100755
index 0000000..261ce19
--- /dev/null
+++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/PowerSupplySubsystem.pm
@@ -0,0 +1,238 @@
+package HP::BladeSystem::Component::PowerSupplySubsystem;
+our @ISA = qw(HP::BladeSystem::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},
+ power_supplies => [],
+ blacklisted => 0,
+ info => undef,
+ extendedinfo => undef,
+ };
+ bless $self, $class;
+ $self->init();
+ return $self;
+}
+
+sub init {
+ my $self = shift;
+ my $oids = {
+ cpqRackPowerSupplyEntry => '1.3.6.1.4.1.232.22.2.5.1.1.1',
+ cpqRackPowerSupplyRack => '1.3.6.1.4.1.232.22.2.5.1.1.1.1',
+ cpqRackPowerSupplyChassis => '1.3.6.1.4.1.232.22.2.5.1.1.1.2',
+ cpqRackPowerSupplyIndex => '1.3.6.1.4.1.232.22.2.5.1.1.1.3',
+ cpqRackPowerSupplyEnclosureName => '1.3.6.1.4.1.232.22.2.5.1.1.1.4',
+ cpqRackPowerSupplySerialNum => '1.3.6.1.4.1.232.22.2.5.1.1.1.5',
+ cpqRackPowerSupplySparePartNumber => '1.3.6.1.4.1.232.22.2.5.1.1.1.7',
+ cpqRackPowerSupplyFWRev => '1.3.6.1.4.1.232.22.2.5.1.1.1.8',
+ cpqRackPowerSupplyMaxPwrOutput => '1.3.6.1.4.1.232.22.2.5.1.1.1.9',
+ cpqRackPowerSupplyCurPwrOutput => '1.3.6.1.4.1.232.22.2.5.1.1.1.10',
+ cpqRackPowerSupplyIntakeTemp => '1.3.6.1.4.1.232.22.2.5.1.1.1.12',
+ cpqRackPowerSupplyExhaustTemp => '1.3.6.1.4.1.232.22.2.5.1.1.1.13',
+ cpqRackPowerSupplyStatus => '1.3.6.1.4.1.232.22.2.5.1.1.1.14',
+ cpqRackPowerSupplySupplyInputLineStatus => '1.3.6.1.4.1.232.22.2.5.1.1.1.15',
+ cpqRackPowerSupplyPresent => '1.3.6.1.4.1.232.22.2.5.1.1.1.16',
+ cpqRackPowerSupplyCondition => '1.3.6.1.4.1.232.22.2.5.1.1.1.17',
+ cpqRackPowerSupplySupplyInputLineStatusValue => {
+ 1 => 'noError',
+ 2 => 'lineOverVoltage',
+ 3 => 'lineUnderVoltage',
+ 4 => 'lineHit',
+ 5 => 'brownOut',
+ 6 => 'linePowerLoss',
+ },
+ cpqRackPowerSupplyStatusValue => {
+ 1 => 'noError',
+ 2 => 'generalFailure',
+ 3 => 'bistFailure',
+ 4 => 'fanFailure',
+ 5 => 'tempFailure',
+ 6 => 'interlockOpen',
+ 7 => 'epromFailed',
+ 8 => 'vrefFailed',
+ 9 => 'dacFailed',
+ 10 => 'ramTestFailed',
+ 11 => 'voltageChannelFailed',
+ 12 => 'orringdiodeFailed',
+ 13 => 'brownOut',
+ 14 => 'giveupOnStartup',
+ 15 => 'nvramInvalid',
+ 16 => 'calibrationTableInvalid',
+ },
+ cpqRackPowerSupplyPresentValue => {
+ 1 => 'other',
+ 2 => 'absent',
+ 3 => 'present',
+ },
+ cpqRackPowerSupplyConditionValue => {
+ 1 => 'other',
+ 2 => 'ok',
+ 3 => 'degraded',
+ 4 => 'failed',
+ },
+ };
+
+
+ # INDEX { cpqRackPowerSupplyRack, cpqRackPowerSupplyChassis, cpqRackPowerSupplyIndex }
+ foreach ($self->get_entries($oids, 'cpqRackPowerSupplyEntry')) {
+ push(@{$self->{power_supplies}},
+ HP::BladeSystem::Component::PowerSupplySubsystem::PowerSupply->new(%{$_}));
+ }
+}
+
+sub check {
+ my $self = shift;
+ my $total_current_watt = 0;
+ my $total_max_watt = 0;
+ my $total_in_temp = 0;
+ my $total_out_temp = 0;
+ my $num_ps = 0;
+ foreach (@{$self->{power_supplies}}) {
+ $_->check() if $_->{cpqRackPowerSupplyPresent} eq 'present' ||
+ $self->{runtime}->{options}->{verbose} >= 3; # absent nur bei -vvv
+ if ($_->{cpqRackPowerSupplyPresent} eq 'present') {
+ $total_max_watt += $_->{cpqRackPowerSupplyMaxPwrOutput};
+ $total_current_watt += $_->{cpqRackPowerSupplyCurPwrOutput};
+ $total_in_temp += $_->{cpqRackPowerSupplyIntakeTemp}
+ if $_->{cpqRackPowerSupplyIntakeTemp} != -1;
+ $total_out_temp += $_->{cpqRackPowerSupplyExhaustTemp}
+ if $_->{cpqRackPowerSupplyExhaustTemp} != -1;
+ $num_ps++;
+ }
+ }
+ $self->{runtime}->{plugin}->add_perfdata(
+ label => 'watt_total',
+ value => $total_current_watt,
+ warning => $total_max_watt,
+ critical => $total_max_watt,
+ );
+ #$self->{runtime}->{plugin}->add_perfdata(
+ # label => 'watt_total_pct',
+ # value => ($total_current_watt == 0 ? 0 :
+ # sprintf("%.2f",
+ # ($total_current_watt / $total_max_watt * 100))),
+ # warning => 100,
+ # critical => 100,
+ # uom => '%',
+ #);
+ if ($total_in_temp) {
+ $self->{runtime}->{plugin}->add_perfdata(
+ label => 'in_temp',
+ value => $total_in_temp / $num_ps,
+ );
+ }
+ if ($total_out_temp) {
+ $self->{runtime}->{plugin}->add_perfdata(
+ label => 'out_temp',
+ value => $total_out_temp / $num_ps,
+ );
+ }
+}
+
+sub dump {
+ my $self = shift;
+ foreach (@{$self->{power_supplies}}) {
+ $_->dump() if $_->{cpqRackPowerSupplyPresent} eq 'present' ||
+ $self->{runtime}->{options}->{verbose} >= 3; # absent nur bei -vvv
+ }
+}
+
+
+package HP::BladeSystem::Component::PowerSupplySubsystem::PowerSupply;
+our @ISA = qw(HP::BladeSystem::Component::PowerSupplySubsystem);
+
+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},
+ blacklisted => 0,
+ info => undef,
+ extendedinfo => undef,
+ };
+ map { $self->{$_} = $params{$_} } grep /cpqRackPowerSupply/, keys %params;
+ $self->{name} = $params{cpqRackPowerSupplyRack}.
+ ':'.$params{cpqRackPowerSupplyChassis}.
+ ':'.$params{cpqRackPowerSupplyIndex};
+ $self->{serfw} = sprintf "Ser: %s, FW: %s", $self->{cpqRackPowerSupplySerialNum}, $self->{cpqRackPowerSupplyFWRev};
+ bless $self, $class;
+ return $self;
+}
+
+sub check {
+ my $self = shift;
+ $self->blacklist('ps', $self->{name});
+ my $info = sprintf 'power supply %s is %s, condition is %s (%s)',
+ $self->{name}, $self->{cpqRackPowerSupplyPresent},
+ $self->{cpqRackPowerSupplyCondition}, $self->{serfw};
+ $self->add_info($info);
+ if ($self->{cpqRackPowerSupplyPresent} eq 'present') {
+ if ($self->{cpqRackPowerSupplyCondition} eq 'degraded') {
+ $info .= sprintf " (SparePartNum %s)", $self->{cpqRackPowerSupplySparePartNumber};
+ $self->add_message(WARNING, $info);
+ $self->add_info(sprintf 'power supply %s status is %s, inp.line status is %s',
+ $self->{name}, $self->{cpqRackPowerSupplyStatus},
+ $self->{cpqRackPowerSupplySupplyInputLineStatus});
+ } elsif ($self->{cpqRackPowerSupplyCondition} eq 'failed') {
+ $info .= sprintf " (SparePartNum %s)", $self->{cpqRackPowerSupplySparePartNumber};
+ $self->add_message(CRITICAL, $info);
+ $self->add_info(sprintf 'power supply %s status is %s, inp.line status is %s',
+ $self->{name}, $self->{cpqRackPowerSupplyStatus},
+ $self->{cpqRackPowerSupplySupplyInputLineStatus});
+ }
+ if ($self->{runtime}->{options}->{perfdata} != 2) {
+ $self->{runtime}->{plugin}->add_perfdata(
+ label => sprintf('watt_%s', $self->{name}),
+ value => $self->{cpqRackPowerSupplyCurPwrOutput},
+ warning => $self->{cpqRackPowerSupplyMaxPwrOutput},
+ critical => $self->{cpqRackPowerSupplyMaxPwrOutput}
+ );
+ #$self->{runtime}->{plugin}->add_perfdata(
+ # label => sprintf('watt_pct_%s', $self->{name}),
+ # value => ($self->{cpqRackPowerSupplyCurPwrOutput} == 0 ? 0 :
+ # sprintf ("%.2f",
+ # ($self->{cpqRackPowerSupplyCurPwrOutput} /
+ # $self->{cpqRackPowerSupplyMaxPwrOutput} * 100))),
+ # warning => 100,
+ # critical => 100,
+ # uom => '%',
+ #);
+ if ($self->{cpqRackPowerSupplyIntakeTemp} != -1) {
+ $self->{runtime}->{plugin}->add_perfdata(
+ label => sprintf('in_temp_%s', $self->{name}),
+ value => $self->{cpqRackPowerSupplyIntakeTemp},
+ );
+ }
+ if ($self->{cpqRackPowerSupplyExhaustTemp} != -1) {
+ $self->{runtime}->{plugin}->add_perfdata(
+ label => sprintf('out_temp_%s', $self->{name}),
+ value => $self->{cpqRackPowerSupplyExhaustTemp},
+ );
+ }
+ }
+ }
+}
+
+sub dump {
+ my $self = shift;
+ printf "[POWER_SUPPLY%s]\n", $self->{name};
+ foreach (qw(cpqRackPowerSupplyRack cpqRackPowerSupplyChassis cpqRackPowerSupplyIndex cpqRackPowerSupplyEnclosureName cpqRackPowerSupplySerialNum cpqRackPowerSupplySparePartNumber cpqRackPowerSupplyFWRev cpqRackPowerSupplyMaxPwrOutput cpqRackPowerSupplyCurPwrOutput cpqRackPowerSupplyIntakeTemp cpqRackPowerSupplyExhaustTemp cpqRackPowerSupplyStatus cpqRackPowerSupplySupplyInputLineStatus cpqRackPowerSupplyPresent cpqRackPowerSupplyCondition)) {
+ printf "%s: %s\n", $_, $self->{$_};
+ }
+ printf "\n";
+}
+
+
+1;