diff options
Diffstat (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/CpuSubsystem.pm')
-rwxr-xr-x | nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/CpuSubsystem.pm | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/CpuSubsystem.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/CpuSubsystem.pm new file mode 100755 index 0000000..0486fd9 --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/CpuSubsystem.pm @@ -0,0 +1,112 @@ +package HP::Proliant::Component::CpuSubsystem; +our @ISA = qw(HP::Proliant::Component); + +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub new { + my $class = shift; +################################## scrapiron ########## + my %params = @_; + my $self = { + runtime => $params{runtime}, + rawdata => $params{rawdata}, + method => $params{method}, + condition => $params{condition}, + status => $params{status}, + cpus => [], + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + bless $self, $class; + if ($self->{method} eq 'snmp') { + return HP::Proliant::Component::CpuSubsystem::SNMP->new(%params); + } elsif ($self->{method} eq 'cli') { + return HP::Proliant::Component::CpuSubsystem::CLI->new(%params); + } else { + die "unknown method"; + } + return $self; +} + +sub check { + my $self = shift; + my $errorfound = 0; + $self->add_info('checking cpus'); + if (scalar (@{$self->{cpus}}) == 0) { + # sachen gibts..... + # $self->overall_check(); # sowas ist mir nur einmal untergekommen + } else { + foreach (@{$self->{cpus}}) { + $_->check(); + } + } +} + +sub num_cpus { + my $self = shift; + return scalar @{$self->{cpus}}; +} + +sub dump { + my $self = shift; + foreach (@{$self->{cpus}}) { + $_->dump(); + } +} + + +package HP::Proliant::Component::CpuSubsystem::Cpu; +our @ISA = qw(HP::Proliant::Component::CpuSubsystem); + +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub new { + my $class = shift; + my %params = @_; + my $self = { + runtime => $params{runtime}, + cpqSeCpuSlot => $params{cpqSeCpuSlot}, + cpqSeCpuUnitIndex => $params{cpqSeCpuUnitIndex}, + cpqSeCpuName => $params{cpqSeCpuName}, + cpqSeCpuStatus => $params{cpqSeCpuStatus}, + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + bless $self, $class; + return $self; +} + +sub check { + my $self = shift; + $self->blacklist('c', $self->{cpqSeCpuUnitIndex}); + if ($self->{cpqSeCpuStatus} ne "ok") { + if ($self->{runtime}->{options}{scrapiron} && + ($self->{cpqSeCpuStatus} eq "unknown")) { + $self->add_info(sprintf "cpu %d probably ok (%s)", + $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus}); + } else { + $self->add_info(sprintf "cpu %d needs attention (%s)", + $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus}); + $self->add_message(CRITICAL, $self->{info}); + } + } else { + $self->add_info(sprintf "cpu %d is %s", + $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus}); + } + $self->add_extendedinfo(sprintf "cpu_%s=%s", + $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus}); +} + +sub dump { + my $self = shift; + printf "[CPU_%s]\n", $self->{cpqSeCpuUnitIndex}; + foreach (qw(cpqSeCpuSlot cpqSeCpuUnitIndex cpqSeCpuName cpqSeCpuStatus)) { + printf "%s: %s\n", $_, $self->{$_}; + } + printf "info: %s\n", $self->{info}; + printf "\n"; +} |