1
package HP::Proliant::Component::DiskSubsystem::Fca::SNMP;
2
our @ISA = qw(HP::Proliant::Component::DiskSubsystem::Fca
3
HP::Proliant::Component::SNMP);
6
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
14
physical_drives => [],
25
my $snmpwalk = $self->{rawdata};
29
cpqFcaHostCntlrEntry => '1.3.6.1.4.1.232.16.2.7.1.1',
30
cpqFcaHostCntlrIndex => '1.3.6.1.4.1.232.16.2.7.1.1.1',
31
cpqFcaHostCntlrSlot => '1.3.6.1.4.1.232.16.2.7.1.1.2',
32
cpqFcaHostCntlrModel => '1.3.6.1.4.1.232.16.2.7.1.1.3',
33
cpqFcaHostCntlrStatus => '1.3.6.1.4.1.232.16.2.7.1.1.4',
34
cpqFcaHostCntlrCondition => '1.3.6.1.4.1.232.16.2.7.1.1.5',
35
cpqFcaHostCntlrOverallCondition => '1.3.6.1.4.1.232.16.2.7.1.1.8',
36
cpqFcaHostCntlrModelValue => {
47
cpqFcaHostCntlrStatusValue => {
55
cpqFcaHostCntlrConditionValue => {
61
cpqFcaHostCntlrOverallConditionValue => {
66
}, # cntrl + alle associated storage boxes
69
# INDEX { cpqFcaHostCntlrIndex }
70
foreach ($self->get_entries($oids, 'cpqFcaHostCntlrEntry')) {
71
push(@{$self->{host_controllers}},
72
HP::Proliant::Component::DiskSubsystem::Fca::HostController->new(%{$_}));
76
cpqFcaCntlrEntry => '1.3.6.1.4.1.232.16.2.2.1.1',
77
cpqFcaCntlrBoxIndex => '1.3.6.1.4.1.232.16.2.2.1.1.1',
78
cpqFcaCntlrBoxIoSlot => '1.3.6.1.4.1.232.16.2.2.1.1.2',
79
cpqFcaCntlrModel => '1.3.6.1.4.1.232.16.2.2.1.1.3',
80
cpqFcaCntlrStatus => '1.3.6.1.4.1.232.16.2.2.1.1.5',
81
cpqFcaCntlrCondition => '1.3.6.1.4.1.232.16.2.2.1.1.6',
82
cpqFcaCntlrModelValue => {
86
4 => "smartArrayClusterStorage",
92
cpqFcaCntlrStatusValue => {
97
4 => "redundantPathOffline",
99
cpqFcaCntlrConditionValue => {
107
# INDEX { cpqFcaCntlrBoxIndex, cpqFcaCntlrBoxIoSlot }
108
foreach ($self->get_entries($oids, 'cpqFcaCntlrEntry')) {
109
push(@{$self->{controllers}},
110
HP::Proliant::Component::DiskSubsystem::Fca::Controller->new(%{$_}));
114
cpqFcaAccelEntry => '1.3.6.1.4.1.232.16.2.2.2.1',
115
cpqFcaAccelBoxIndex => '1.3.6.1.4.1.232.16.2.2.2.1.1',
116
cpqFcaAccelBoxIoSlot => '1.3.6.1.4.1.232.16.2.2.2.1.2',
117
cpqFcaAccelStatus => '1.3.6.1.4.1.232.16.2.2.2.1.3',
118
cpqFcaAccelErrCode => '1.3.6.1.4.1.232.16.2.2.2.1.5',
119
cpqFcaAccelBatteryStatus => '1.3.6.1.4.1.232.16.2.2.2.1.6',
120
cpqFcaAccelCondition => '1.3.6.1.4.1.232.16.2.2.2.1.9',
121
cpqFcaAccelStatusValue => {
128
cpqFcaAccelErrCodeValue => {
136
8 => 'badMirrorData',
140
12 => 'expandInProgress',
141
13 => 'snapshotInProgress',
142
14 => 'redundantLowBattery',
143
15 => 'redundantSizeMismatch',
144
16 => 'redundantCacheFailure',
145
17 => 'excessiveEccErrors',
146
19 => 'postEccErrors',
148
cpqFcaAccelBatteryStatusValue => {
156
cpqFcaAccelConditionValue => {
164
# INDEX { cpqFcaAccelBoxIndex, cpqFcaAccelBoxIoSlot }
165
foreach ($self->get_entries($oids, 'cpqFcaAccelEntry')) {
166
push(@{$self->{accelerators}},
167
HP::Proliant::Component::DiskSubsystem::Fca::Accelerator->new(%{$_}));
171
cpqFcaLogDrvEntry => '1.3.6.1.4.1.232.16.2.3.1.1',
172
cpqFcaLogDrvBoxIndex => '1.3.6.1.4.1.232.16.2.3.1.1.1',
173
cpqFcaLogDrvIndex => '1.3.6.1.4.1.232.16.2.3.1.1.2',
174
cpqFcaLogDrvFaultTol => '1.3.6.1.4.1.232.16.2.3.1.1.3',
175
cpqFcaLogDrvStatus => '1.3.6.1.4.1.232.16.2.3.1.1.4',
176
cpqFcaLogDrvPercentRebuild => '1.3.6.1.4.1.232.16.2.3.1.1.6',
177
cpqFcaLogDrvSize => '1.3.6.1.4.1.232.16.2.3.1.1.9',
178
cpqFcaLogDrvPhyDrvIDs => '1.3.6.1.4.1.232.16.2.3.1.1.10',
179
cpqFcaLogDrvCondition => '1.3.6.1.4.1.232.16.2.3.1.1.11',
180
cpqFcaLogDrvFaultTolValue => {
185
5 => 'distribDataGuard',
186
7 => 'advancedDataGuard',
188
cpqFcaLogDrvStatusValue => {
194
6 => 'readyForRebuild',
201
13 => 'notAvailable',
202
14 => 'queuedForExpansion',
205
cpqFcaLogDrvConditionValue => {
213
# INDEX { cpqFcaLogDrvBoxIndex, cpqFcaLogDrvIndex }
214
foreach ($self->get_entries($oids, 'cpqFcaLogDrvEntry')) {
215
push(@{$self->{logical_drives}},
216
HP::Proliant::Component::DiskSubsystem::Fca::LogicalDrive->new(%{$_}));
220
cpqFcaPhyDrvEntry => '1.3.6.1.4.1.232.16.2.5.1.1',
221
cpqFcaPhyDrvBoxIndex => '1.3.6.1.4.1.232.16.2.5.1.1.1',
222
cpqFcaPhyDrvIndex => '1.3.6.1.4.1.232.16.2.5.1.1.2',
223
cpqFcaPhyDrvModel => '1.3.6.1.4.1.232.16.2.5.1.1.3',
224
cpqFcaPhyDrvBay => '1.3.6.1.4.1.232.16.2.5.1.1.5',
225
cpqFcaPhyDrvStatus => '1.3.6.1.4.1.232.16.2.5.1.1.6',
226
cpqFcaPhyDrvCondition => '1.3.6.1.4.1.232.16.2.5.1.1.31',
227
cpqFcaPhyDrvSize => '1.3.6.1.4.1.232.16.2.5.1.1.38',
228
cpqFcaPhyDrvBusNumber => '1.3.6.1.4.1.232.16.2.5.1.1.42',
229
cpqFcaPhyDrvStatusValue => {
233
4 => 'threshExceeded',
234
5 => 'predictiveFailure',
237
cpqFcaPhyDrvConditionValue => {
245
# INDEX { cpqFcaPhyDrvBoxIndex, cpqFcaPhyDrvIndex }
246
foreach ($self->get_entries($oids, 'cpqFcaPhyDrvEntry')) {
247
push(@{$self->{physical_drives}},
248
HP::Proliant::Component::DiskSubsystem::Fca::PhysicalDrive->new(%{$_}));
252
cpqFcaMibRevMajor => '1.3.6.1.4.1.232.16.1.1.0',
253
cpqFcaMibRevMinor => '1.3.6.1.4.1.232.16.1.2.0',
254
cpqFcaMibCondition => '1.3.6.1.4.1.232.16.1.3.0',
255
cpqFcaMibConditionValue => {
262
$self->{global_status} =
263
HP::Proliant::Component::DiskSubsystem::Fca::GlobalStatus->new(
264
runtime => $self->{runtime},
265
cpqFcaMibCondition =>
266
SNMP::Utils::get_object_value($snmpwalk,
267
$oids->{cpqFcaMibCondition}, $oids->{cpqFcaMibConditionValue})