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);
40
$self->{tempstatus} |= lc $self->{tempstatus};
46
my $snmpwalk = $self->{rawdata};
48
cpqHeTemperatureEntry => "1.3.6.1.4.1.232.6.2.6.8.1",
49
cpqHeTemperatureChassis => "1.3.6.1.4.1.232.6.2.6.8.1.1",
50
cpqHeTemperatureIndex => "1.3.6.1.4.1.232.6.2.6.8.1.2",
51
cpqHeTemperatureLocale => "1.3.6.1.4.1.232.6.2.6.8.1.3",
52
cpqHeTemperatureCelsius => "1.3.6.1.4.1.232.6.2.6.8.1.4",
53
cpqHeTemperatureThresholdCelsius => "1.3.6.1.4.1.232.6.2.6.8.1.5",
54
cpqHeTemperatureCondition => "1.3.6.1.4.1.232.6.2.6.8.1.6",
55
cpqHeTemperatureThresholdType => "1.3.6.1.4.1.232.6.2.6.8.1.7",
56
cpqHeTemperatureLocaleValue => {
65
9 => "removableMedia",
71
cpqHeTemperatureConditionValue => {
77
cpqHeTemperatureThresholdTypeValue => {
84
# INDEX { cpqHeTemperatureChassis, cpqHeTemperatureIndex }
85
foreach ($self->get_entries($oids, 'cpqHeTemperatureEntry')) {
86
# sieht aus, als wurden die gar nicht existieren.
87
# im ilo4 werden sie als n/a angezeigt
88
next if $_->{cpqHeTemperatureThresholdType} eq "caution" && $_->{cpqHeTemperatureThresholdCelsius} == 0;
89
push(@{$self->{temperatures}},
90
HP::Proliant::Component::TemperatureSubsystem::Temperature->new(%{$_}));
97
$self->blacklist('ots', '');
98
if ($self->{tempstatus}) {
99
if ($self->{tempstatus} eq "ok") {
101
$self->add_info('all temp sensors are within normal operating range');
102
} elsif ($self->{tempstatus} eq "degraded") {
104
$self->add_info('a temp sensor is outside of normal operating range');
105
} elsif ($self->{tempstatus} eq "failed") {
107
$self->add_info('a temp sensor detects a condition that could permanently
109
} elsif ($self->{tempstatus} eq "other") {
111
$self->add_info('temp sensing is not supported by this system or driver');
115
$self->add_info('no global temp status found');