1
package HP::BladeSystem::Component::CommonEnclosureSubsystem::TempSubsystem;
2
our @ISA = qw(HP::BladeSystem::Component::CommonEnclosureSubsystem);
5
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
11
runtime => $params{runtime},
12
rawdata => $params{rawdata},
13
method => $params{method},
14
condition => $params{condition},
15
status => $params{status},
19
extendedinfo => undef,
22
if ($params{runtime}->{options}->{customthresholds}) {
23
if (-f $params{runtime}->{options}->{customthresholds}) {
24
open CT, $params{runtime}->{options}->{customthresholds};
25
$params{runtime}->{options}->{customthresholds} = <CT>;
29
(split(/\//, $params{runtime}->{options}->{customthresholds})) {
30
if ($ct_items =~ /^(\d+):(\d+)$/) {
32
$params{runtime}->{options}->{thresholds}->{$1} = $temp;
34
die sprintf "invalid threshold %s", $ct_items;
45
my $snmpwalk = $self->{rawdata};
47
cpqRackCommonEnclosureTempEntry => '1.3.6.1.4.1.232.22.2.3.1.2.1',
48
cpqRackCommonEnclosureTempRack => '1.3.6.1.4.1.232.22.2.3.1.2.1.1',
49
cpqRackCommonEnclosureTempChassis => '1.3.6.1.4.1.232.22.2.3.1.2.1.2',
50
cpqRackCommonEnclosureTempSensorIndex => '1.3.6.1.4.1.232.22.2.3.1.2.1.3',
51
cpqRackCommonEnclosureTempSensorEnclosureName => '1.3.6.1.4.1.232.22.2.3.1.2.1.4',
52
cpqRackCommonEnclosureTempLocation => '1.3.6.1.4.1.232.22.2.3.1.2.1.5',
53
cpqRackCommonEnclosureTempCurrent => '1.3.6.1.4.1.232.22.2.3.1.2.1.6',
54
cpqRackCommonEnclosureTempThreshold => '1.3.6.1.4.1.232.22.2.3.1.2.1.7',
55
cpqRackCommonEnclosureTempCondition => '1.3.6.1.4.1.232.22.2.3.1.2.1.8',
56
cpqRackCommonEnclosureTempType => '1.3.6.1.4.1.232.22.2.3.1.2.1.9',
57
cpqRackCommonEnclosureTempConditionValue => {
63
cpqRackCommonEnclosureTempTypeValue => {
70
# INDEX { cpqRackCommonEnclosureTempRack cpqRackCommonEnclosureTempChassis
71
# cpqRackCommonEnclosureTempSensorIndex }
72
foreach ($self->get_entries($oids, 'cpqRackCommonEnclosureTempEntry')) {
73
push(@{$self->{temperatures}},
74
HP::BladeSystem::Component::CommonEnclosureSubsystem::TempSubsystem::Temp->new(%{$_})) if (($_->{cpqRackCommonEnclosureTempCurrent} != -1 && $_->{cpqRackCommonEnclosureTempThreshold} != -1) && ($_->{cpqRackCommonEnclosureTempThreshold} != 0));
83
if (scalar (@{$self->{temperatures}}) == 0) {
84
#$self->overall_check();
86
foreach (@{$self->{temperatures}}) {
94
foreach (@{$self->{temperatures}}) {
100
package HP::BladeSystem::Component::CommonEnclosureSubsystem::TempSubsystem::Temp;
101
our @ISA = qw(HP::BladeSystem::Component::CommonEnclosureSubsystem::TempSubsystem);
104
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
110
runtime => $params{runtime},
111
rawdata => $params{rawdata},
112
method => $params{method},
115
extendedinfo => undef,
117
map { $self->{$_} = $params{$_} } grep /cpqRackCommonEnclosureTemp/, keys %params;
118
$self->{name} = $params{cpqRackCommonEnclosureTempRack}.':'.
119
$params{cpqRackCommonEnclosureTempChassis}.':'.
120
$params{cpqRackCommonEnclosureTempSensorIndex};
127
$self->blacklist('t', $self->{name});
128
if ($self->{cpqRackCommonEnclosureTempCurrent} > $self->{cpqRackCommonEnclosureTempThreshold}) {
129
$self->add_info(sprintf "%s temperature too high (%d%s)",
130
$self->{cpqRackCommonEnclosureTempLocation},
131
$self->{cpqRackCommonEnclosureTempCurrent},
132
$self->{runtime}->{options}->{celsius} ? "C" : "F");
133
$self->add_message(CRITICAL, $self->{info});
135
$self->add_info(sprintf "%s temperature is %d%s (%d max)",
136
$self->{cpqRackCommonEnclosureTempLocation},
137
$self->{cpqRackCommonEnclosureTempCurrent},
138
$self->{runtime}->{options}->{celsius} ? "C" : "F",
139
$self->{cpqRackCommonEnclosureTempThreshold});
141
if ($self->{runtime}->{options}->{perfdata} == 2) {
142
$self->{runtime}->{plugin}->add_perfdata(
143
label => sprintf('temp_%s', $self->{name}),
144
value => $self->{cpqRackCommonEnclosureTempCurrent},
145
warning => $self->{cpqRackCommonEnclosureTempThreshold},
146
critical => $self->{cpqRackCommonEnclosureTempThreshold}
148
} elsif ($self->{runtime}->{options}->{perfdata} == 1) {
149
$self->{runtime}->{plugin}->add_perfdata(
150
label => sprintf('temp_%s_%s', $self->{name},
151
$self->{cpqRackCommonEnclosureTempLocation}),
152
value => $self->{cpqRackCommonEnclosureTempCurrent},
153
warning => $self->{cpqRackCommonEnclosureTempThreshold},
154
critical => $self->{cpqRackCommonEnclosureTempThreshold}
157
$self->add_extendedinfo(sprintf "temp_%s=%d",
158
$self->{name}, $self->{cpqRackCommonEnclosureTempCurrent});
165
printf "[TEMP_%s]\n", $self->{name};
166
foreach (qw(cpqRackCommonEnclosureTempRack cpqRackCommonEnclosureTempChassis
167
cpqRackCommonEnclosureTempSensorIndex cpqRackCommonEnclosureTempSensorEnclosureName
168
cpqRackCommonEnclosureTempLocation
169
cpqRackCommonEnclosureTempCurrent cpqRackCommonEnclosureTempThreshold
170
cpqRackCommonEnclosureTempCondition cpqRackCommonEnclosureTempType)) {
171
printf "%s: %s\n", $_, $self->{$_};
173
printf "info: %s\n\n", $self->{info};