1
package HP::Proliant::Component::TemperatureSubsystem::SNMP;
2
our @ISA = qw(HP::Proliant::Component::TemperatureSubsystem
3
HP::Proliant::Component::SNMP);
6
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
12
runtime => $params{runtime},
13
rawdata => $params{rawdata},
17
extendedinfo => undef,
20
$self->overall_init(%params);
28
my $snmpwalk = $params{rawdata};
30
my $cpqHeThermalTempStatus = '1.3.6.1.4.1.232.6.2.6.3.0';
31
my $cpqHeThermalTempStatusValue = {
37
$self->{tempstatus} = lc SNMP::Utils::get_object_value(
38
$snmpwalk, $cpqHeThermalTempStatus,
39
$cpqHeThermalTempStatusValue);
45
my $snmpwalk = $self->{rawdata};
47
cpqHeTemperatureEntry => "1.3.6.1.4.1.232.6.2.6.8.1",
48
cpqHeTemperatureChassis => "1.3.6.1.4.1.232.6.2.6.8.1.1",
49
cpqHeTemperatureIndex => "1.3.6.1.4.1.232.6.2.6.8.1.2",
50
cpqHeTemperatureLocale => "1.3.6.1.4.1.232.6.2.6.8.1.3",
51
cpqHeTemperatureCelsius => "1.3.6.1.4.1.232.6.2.6.8.1.4",
52
cpqHeTemperatureThresholdCelsius => "1.3.6.1.4.1.232.6.2.6.8.1.5",
53
cpqHeTemperatureCondition => "1.3.6.1.4.1.232.6.2.6.8.1.6",
54
cpqHeTemperatureLocaleValue => {
63
9 => "removableMedia",
69
cpqHeTemperatureConditionValue => {
76
# INDEX { cpqHeTemperatureChassis, cpqHeTemperatureIndex }
77
foreach ($self->get_entries($oids, 'cpqHeTemperatureEntry')) {
78
push(@{$self->{temperatures}},
79
HP::Proliant::Component::TemperatureSubsystem::Temperature->new(%{$_}));
86
$self->blacklist('ots', '');
87
if ($self->{tempstatus}) {
88
if ($self->{tempstatus} eq "ok") {
90
$self->add_info('all temp sensors are within normal operating range');
91
} elsif ($self->{tempstatus} eq "degraded") {
93
$self->add_info('a temp sensor is outside of normal operating range');
94
} elsif ($self->{tempstatus} eq "failed") {
96
$self->add_info('a temp sensor detects a condition that could permanently
98
} elsif ($self->{tempstatus} eq "other") {
100
$self->add_info('temp sensing is not supported by this system or driver');
104
$self->add_info('no global temp status found');