From 1e2387474a449452b78520b9ad96a8b4b5e99722 Mon Sep 17 00:00:00 2001 From: Harald Pfeiffer Date: Wed, 17 Apr 2019 19:07:19 +0200 Subject: initial commit of source fetch --- .../Component/CommonEnclosureSubsystem.pm | 176 +++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100755 nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/CommonEnclosureSubsystem.pm (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/CommonEnclosureSubsystem.pm') diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/CommonEnclosureSubsystem.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/CommonEnclosureSubsystem.pm new file mode 100755 index 0000000..37cec73 --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/BladeSystem/Component/CommonEnclosureSubsystem.pm @@ -0,0 +1,176 @@ +package HP::BladeSystem::Component::CommonEnclosureSubsystem; +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}, + common_enclosures => [], + common_enclosure_temp_subsys => undef, + common_enclosure_fan_subsys => undef, + common_enclosure_fuse_subsys => undef, + common_enclosure_manager_subsys => undef, + common_enclosure_frus => [], + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + bless $self, $class; + $self->init(); + return $self; +} + +sub init { + my $self = shift; + # jeweils ein block fuer + # enclosures, temps, fans, fuses + # loop ueber oids und entspr. new + my $oids = { + cpqRackCommonEnclosureEntry => '1.3.6.1.4.1.232.22.2.3.1.1.1', + cpqRackCommonEnclosureRack => '1.3.6.1.4.1.232.22.2.3.1.1.1.1', + cpqRackCommonEnclosureIndex => '1.3.6.1.4.1.232.22.2.3.1.1.1.2', + cpqRackCommonEnclosureModel => '1.3.6.1.4.1.232.22.2.3.1.1.1.3', + cpqRackCommonEnclosureSparePartNumber => '1.3.6.1.4.1.232.22.2.3.1.1.1.6', + cpqRackCommonEnclosureSerialNum => '1.3.6.1.4.1.232.22.2.3.1.1.1.7', + cpqRackCommonEnclosureFWRev => '1.3.6.1.4.1.232.22.2.3.1.1.1.8', + cpqRackCommonEnclosureName => '1.3.6.1.4.1.232.22.2.3.1.1.1.9', + cpqRackCommonEnclosureCondition => '1.3.6.1.4.1.232.22.2.3.1.1.1.16', + cpqRackCommonEnclosureHasServerBlades => '1.3.6.1.4.1.232.22.2.3.1.1.1.17', + cpqRackCommonEnclosureHasPowerBlades => '1.3.6.1.4.1.232.22.2.3.1.1.1.18', + cpqRackCommonEnclosureHasNetConnectors => '1.3.6.1.4.1.232.22.2.3.1.1.1.19', + cpqRackCommonEnclosureHasTempSensors => '1.3.6.1.4.1.232.22.2.3.1.1.1.20', + cpqRackCommonEnclosureHasFans => '1.3.6.1.4.1.232.22.2.3.1.1.1.21', + cpqRackCommonEnclosureHasFuses => '1.3.6.1.4.1.232.22.2.3.1.1.1.22', + cpqRackCommonEnclosureConditionValue => { + 1 => 'other', + 2 => 'ok', + 3 => 'degraded', + 4 => 'failed', + }, + cpqRackCommonEnclosureHasServerBladesValue => { + 1 => 'false', + 2 => 'true', + }, + }; + $oids->{cpqRackCommonEnclosureHasPowerBladesValue} = + $oids->{cpqRackCommonEnclosureHasServerBladesValue}; + $oids->{cpqRackCommonEnclosureHasNetConnectorsValue} = + $oids->{cpqRackCommonEnclosureHasServerBladesValue}; + $oids->{cpqRackCommonEnclosureHasTempSensorsValue} = + $oids->{cpqRackCommonEnclosureHasServerBladesValue}; + $oids->{cpqRackCommonEnclosureHasFansValue} = + $oids->{cpqRackCommonEnclosureHasServerBladesValue}; + $oids->{cpqRackCommonEnclosureHasServerBladesValue} = + $oids->{cpqRackCommonEnclosureHasServerBladesValue}; + # INDEX { cpqRackCommonEnclosureRack cpqRackCommonEnclosureIndex } + foreach ($self->get_entries($oids, 'cpqRackCommonEnclosureEntry')) { + push(@{$self->{common_enclosures}}, + HP::BladeSystem::Component::CommonEnclosureSubsystem::CommonEnclosure->new(%{$_})); + } + + $self->{common_enclosure_fan_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::FanSubsystem->new( + rawdata => $self->{rawdata}, + method => $self->{method}, + runtime => $self->{runtime}, + ); + $self->{common_enclosure_temp_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::TempSubsystem->new( + rawdata => $self->{rawdata}, + method => $self->{method}, + runtime => $self->{runtime}, + ); + $self->{common_enclosure_fuse_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::FuseSubsystem->new( + rawdata => $self->{rawdata}, + method => $self->{method}, + runtime => $self->{runtime}, + ); + $self->{common_enclosure_manager_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::ManagerSubsystem->new( + rawdata => $self->{rawdata}, + method => $self->{method}, + runtime => $self->{runtime}, + ); +} + +sub check { + my $self = shift; + foreach (@{$self->{common_enclosures}}) { + $_->check(); + } + $self->{common_enclosure_fan_subsys}->check(); + $self->{common_enclosure_temp_subsys}->check(); + $self->{common_enclosure_fuse_subsys}->check(); + $self->{common_enclosure_manager_subsys}->check(); +} + +sub dump { + my $self = shift; + foreach (@{$self->{common_enclosures}}) { + $_->dump(); + } + $self->{common_enclosure_fan_subsys}->dump(); + $self->{common_enclosure_temp_subsys}->dump(); + $self->{common_enclosure_fuse_subsys}->dump(); + $self->{common_enclosure_manager_subsys}->dump(); +} + + +package HP::BladeSystem::Component::CommonEnclosureSubsystem::CommonEnclosure; +our @ISA = qw(HP::BladeSystem::Component::CommonEnclosureSubsystem); + +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}, + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + map { $self->{$_} = $params{$_} } grep /cpqRackCommonEnclosure/, keys %params; + $self->{name} = $self->{cpqRackCommonEnclosureRack}.':'.$self->{cpqRackCommonEnclosureIndex}; + $self->{serfw} = sprintf "Ser: %s, FW: %s", $self->{cpqRackCommonEnclosureSerialNum}, + $self->{cpqRackCommonEnclosureFWRev}; + bless $self, $class; + return $self; +} + + +sub check { + my $self = shift; + $self->blacklist('ce', $self->{cpqRackCommonEnclosureName}); + my $info = sprintf 'common enclosure %s condition is %s (%s)', + $self->{cpqRackCommonEnclosureName}, $self->{cpqRackCommonEnclosureCondition}, $self->{serfw}; + $self->add_info($info); + if ($self->{cpqRackCommonEnclosureCondition} eq 'failed') { + $info .= sprintf " (SparePartNum %s)", $self->{cpqRackCommonEnclosureSparePartNumber}; + $self->add_message(CRITICAL, $info); + } elsif ($self->{cpqRackCommonEnclosureCondition} eq 'degraded') { + $info .= sprintf " (SparePartNum %s)", $self->{cpqRackCommonEnclosureSparePartNumber}; + $self->add_message(WARNING, $info); + } +} + +sub dump { + my $self = shift; + printf "[COMMON_ENCLOSURE_%s]\n", $self->{cpqRackCommonEnclosureName}; + foreach (qw(cpqRackCommonEnclosureRack cpqRackCommonEnclosureIndex cpqRackCommonEnclosureModel + cpqRackCommonEnclosureSerialNum cpqRackCommonEnclosureFWRev cpqRackCommonEnclosureFWRev + cpqRackCommonEnclosureName + cpqRackCommonEnclosureCondition cpqRackCommonEnclosureHasServerBlades + cpqRackCommonEnclosureHasPowerBlades cpqRackCommonEnclosureHasNetConnectors + cpqRackCommonEnclosureHasTempSensors cpqRackCommonEnclosureHasFans cpqRackCommonEnclosureHasFuses)) { + printf "%s: %s\n", $_, $self->{$_}; + } + printf "\n"; +} + +1; -- cgit v1.2.3