1
package HP::BladeSystem::Component::CommonEnclosureSubsystem;
2
our @ISA = qw(HP::BladeSystem::Component);
5
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
11
runtime => $params{runtime},
12
rawdata => $params{rawdata},
13
method => $params{method},
14
common_enclosures => [],
15
common_enclosure_temp_subsys => undef,
16
common_enclosure_fan_subsys => undef,
17
common_enclosure_fuse_subsys => undef,
18
common_enclosure_manager_subsys => undef,
19
common_enclosure_frus => [],
22
extendedinfo => undef,
31
# jeweils ein block fuer
32
# enclosures, temps, fans, fuses
33
# loop ueber oids und entspr. new
35
cpqRackCommonEnclosureEntry => '1.3.6.1.4.1.232.22.2.3.1.1.1',
36
cpqRackCommonEnclosureRack => '1.3.6.1.4.1.232.22.2.3.1.1.1.1',
37
cpqRackCommonEnclosureIndex => '1.3.6.1.4.1.232.22.2.3.1.1.1.2',
38
cpqRackCommonEnclosureModel => '1.3.6.1.4.1.232.22.2.3.1.1.1.3',
39
cpqRackCommonEnclosureSparePartNumber => '1.3.6.1.4.1.232.22.2.3.1.1.1.6',
40
cpqRackCommonEnclosureSerialNum => '1.3.6.1.4.1.232.22.2.3.1.1.1.7',
41
cpqRackCommonEnclosureFWRev => '1.3.6.1.4.1.232.22.2.3.1.1.1.8',
42
cpqRackCommonEnclosureName => '1.3.6.1.4.1.232.22.2.3.1.1.1.9',
43
cpqRackCommonEnclosureCondition => '1.3.6.1.4.1.232.22.2.3.1.1.1.16',
44
cpqRackCommonEnclosureHasServerBlades => '1.3.6.1.4.1.232.22.2.3.1.1.1.17',
45
cpqRackCommonEnclosureHasPowerBlades => '1.3.6.1.4.1.232.22.2.3.1.1.1.18',
46
cpqRackCommonEnclosureHasNetConnectors => '1.3.6.1.4.1.232.22.2.3.1.1.1.19',
47
cpqRackCommonEnclosureHasTempSensors => '1.3.6.1.4.1.232.22.2.3.1.1.1.20',
48
cpqRackCommonEnclosureHasFans => '1.3.6.1.4.1.232.22.2.3.1.1.1.21',
49
cpqRackCommonEnclosureHasFuses => '1.3.6.1.4.1.232.22.2.3.1.1.1.22',
50
cpqRackCommonEnclosureConditionValue => {
56
cpqRackCommonEnclosureHasServerBladesValue => {
61
$oids->{cpqRackCommonEnclosureHasPowerBladesValue} =
62
$oids->{cpqRackCommonEnclosureHasServerBladesValue};
63
$oids->{cpqRackCommonEnclosureHasNetConnectorsValue} =
64
$oids->{cpqRackCommonEnclosureHasServerBladesValue};
65
$oids->{cpqRackCommonEnclosureHasTempSensorsValue} =
66
$oids->{cpqRackCommonEnclosureHasServerBladesValue};
67
$oids->{cpqRackCommonEnclosureHasFansValue} =
68
$oids->{cpqRackCommonEnclosureHasServerBladesValue};
69
$oids->{cpqRackCommonEnclosureHasServerBladesValue} =
70
$oids->{cpqRackCommonEnclosureHasServerBladesValue};
71
# INDEX { cpqRackCommonEnclosureRack cpqRackCommonEnclosureIndex }
72
foreach ($self->get_entries($oids, 'cpqRackCommonEnclosureEntry')) {
73
push(@{$self->{common_enclosures}},
74
HP::BladeSystem::Component::CommonEnclosureSubsystem::CommonEnclosure->new(%{$_}));
77
$self->{common_enclosure_fan_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::FanSubsystem->new(
78
rawdata => $self->{rawdata},
79
method => $self->{method},
80
runtime => $self->{runtime},
82
$self->{common_enclosure_temp_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::TempSubsystem->new(
83
rawdata => $self->{rawdata},
84
method => $self->{method},
85
runtime => $self->{runtime},
87
$self->{common_enclosure_fuse_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::FuseSubsystem->new(
88
rawdata => $self->{rawdata},
89
method => $self->{method},
90
runtime => $self->{runtime},
92
$self->{common_enclosure_manager_subsys} = HP::BladeSystem::Component::CommonEnclosureSubsystem::ManagerSubsystem->new(
93
rawdata => $self->{rawdata},
94
method => $self->{method},
95
runtime => $self->{runtime},
101
foreach (@{$self->{common_enclosures}}) {
104
$self->{common_enclosure_fan_subsys}->check();
105
$self->{common_enclosure_temp_subsys}->check();
106
$self->{common_enclosure_fuse_subsys}->check();
107
$self->{common_enclosure_manager_subsys}->check();
112
foreach (@{$self->{common_enclosures}}) {
115
$self->{common_enclosure_fan_subsys}->dump();
116
$self->{common_enclosure_temp_subsys}->dump();
117
$self->{common_enclosure_fuse_subsys}->dump();
118
$self->{common_enclosure_manager_subsys}->dump();
122
package HP::BladeSystem::Component::CommonEnclosureSubsystem::CommonEnclosure;
123
our @ISA = qw(HP::BladeSystem::Component::CommonEnclosureSubsystem);
126
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
132
runtime => $params{runtime},
133
rawdata => $params{rawdata},
136
extendedinfo => undef,
138
map { $self->{$_} = $params{$_} } grep /cpqRackCommonEnclosure/, keys %params;
139
$self->{name} = $self->{cpqRackCommonEnclosureRack}.':'.$self->{cpqRackCommonEnclosureIndex};
140
$self->{serfw} = sprintf "Ser: %s, FW: %s", $self->{cpqRackCommonEnclosureSerialNum},
141
$self->{cpqRackCommonEnclosureFWRev};
149
$self->blacklist('ce', $self->{cpqRackCommonEnclosureName});
150
my $info = sprintf 'common enclosure %s condition is %s (%s)',
151
$self->{cpqRackCommonEnclosureName}, $self->{cpqRackCommonEnclosureCondition}, $self->{serfw};
152
$self->add_info($info);
153
if ($self->{cpqRackCommonEnclosureCondition} eq 'failed') {
154
$info .= sprintf " (SparePartNum %s)", $self->{cpqRackCommonEnclosureSparePartNumber};
155
$self->add_message(CRITICAL, $info);
156
} elsif ($self->{cpqRackCommonEnclosureCondition} eq 'degraded') {
157
$info .= sprintf " (SparePartNum %s)", $self->{cpqRackCommonEnclosureSparePartNumber};
158
$self->add_message(WARNING, $info);
164
printf "[COMMON_ENCLOSURE_%s]\n", $self->{cpqRackCommonEnclosureName};
165
foreach (qw(cpqRackCommonEnclosureRack cpqRackCommonEnclosureIndex cpqRackCommonEnclosureModel
166
cpqRackCommonEnclosureSerialNum cpqRackCommonEnclosureFWRev cpqRackCommonEnclosureFWRev
167
cpqRackCommonEnclosureName
168
cpqRackCommonEnclosureCondition cpqRackCommonEnclosureHasServerBlades
169
cpqRackCommonEnclosureHasPowerBlades cpqRackCommonEnclosureHasNetConnectors
170
cpqRackCommonEnclosureHasTempSensors cpqRackCommonEnclosureHasFans cpqRackCommonEnclosureHasFuses)) {
171
printf "%s: %s\n", $_, $self->{$_};