1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
package HP::Proliant::Component::PowersupplySubsystem::SNMP;
our _æ_ ISA = qw(HP::Proliant::Component::PowersupplySubsystem
HP::Proliant::Component::SNMP);
use strict;
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
sub new {
my $class = shift;
my %params = _æ_ _;
my $self = {
runtime => $params{runtime},
rawdata => $params{rawdata},
powersupplies => [],
powerconverters => [],
blacklisted => 0,
info => undef,
extendedinfo => undef,
};
bless $self, $class;
$self->init(%params);
return $self;
}
sub init {
my $self = shift;
my %params = _æ_ _;
my $snmpwalk = $self->{rawdata};
my $oids = {
cpqHeFltTolPowerSupplyEntry => "1.3.6.1.4.1.232.6.2.9.3.1",
cpqHeFltTolPowerSupplyChassis => "1.3.6.1.4.1.232.6.2.9.3.1.1",
cpqHeFltTolPowerSupplyBay => "1.3.6.1.4.1.232.6.2.9.3.1.2",
cpqHeFltTolPowerSupplyPresent => "1.3.6.1.4.1.232.6.2.9.3.1.3",
cpqHeFltTolPowerSupplyCondition => "1.3.6.1.4.1.232.6.2.9.3.1.4",
cpqHeFltTolPowerSupplyRedundant => "1.3.6.1.4.1.232.6.2.9.3.1.9",
cpqHeFltTolPowerSupplyPresentValue => {
1 => "other",
2 => "absent",
3 => "present",
},
cpqHeFltTolPowerSupplyConditionValue => {
1 => "other",
2 => "ok",
3 => "degraded",
4 => "failed",
},
cpqHeFltTolPowerSupplyCapacityUsed => '1.3.6.1.4.1.232.6.2.9.3.1.7',
cpqHeFltTolPowerSupplyCapacityMaximum => '1.3.6.1.4.1.232.6.2.9.3.1.8',
cpqHeFltTolPowerSupplyRedundantValue => {
1 => "other",
2 => "notRedundant",
3 => "redundant",
},
};
# INDEX { cpqHeFltTolPowerSupplyChassis, cpqHeFltTolPowerSupplyBay }
foreach ($self->get_entries($oids, 'cpqHeFltTolPowerSupplyEntry')) {
push( _æ_ {$self->{powersupplies}},
HP::Proliant::Component::PowersupplySubsystem::Powersupply->new(%{$_}));
}
$oids = {
cpqHePowerConvEntry => "1.3.6.1.4.1.232.6.2.13.3.1",
cpqHePowerConvChassis => "1.3.6.1.4.1.232.6.2.13.3.1.1",
cpqHePowerConvIndex => "1.3.6.1.4.1.232.6.2.13.3.1.2",
cpqHePowerConvPresent => "1.3.6.1.4.1.232.6.2.13.3.1.3",
cpqHePowerConvRedundant => "1.3.6.1.4.1.232.6.2.13.3.1.6",
cpqHePowerConvCondition => "1.3.6.1.4.1.232.6.2.13.3.1.8",
cpqHePowerConvPresentValue => {
1 => "other",
2 => "absent",
3 => "present",
},
cpqHePowerConvRedundantValue => {
1 => "other",
2 => "notRedundant",
3 => "redundant",
},
cpqHePowerConvConditionValue => {
1 => "other",
2 => "ok",
3 => "degraded",
4 => "failed",
},
cpqHePowerConvHwLocation => "1.3.6.1.4.1.232.6.2.13.3.1.9",
};
# INDEX { cpqHePowerConvChassis cpqHePowerConvIndex }
foreach ($self->get_entries($oids, 'cpqHePowerConvEntry')) {
push( _æ_ {$self->{powerconverters}},
HP::Proliant::Component::PowersupplySubsystem::Powerconverter->new(%{$_}));
}
# keine ahnung, was man damit machen kann
}
|