1
package HP::BladeSystem::Component::PowerEnclosureSubsystem;
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
power_enclosures => [],
17
extendedinfo => undef,
27
# cpqRackPowerEnclosureTable
29
cpqRackPowerEnclosureEntry => '1.3.6.1.4.1.232.22.2.3.3.1.1',
30
cpqRackPowerEnclosureRack => '1.3.6.1.4.1.232.22.2.3.3.1.1.1',
31
cpqRackPowerEnclosureIndex => '1.3.6.1.4.1.232.22.2.3.3.1.1.2',
32
cpqRackPowerEnclosureName => '1.3.6.1.4.1.232.22.2.3.3.1.1.3',
33
cpqRackPowerEnclosureMgmgtBoardSerialNum => '1.3.6.1.4.1.232.22.2.3.3.1.1.4',
34
cpqRackPowerEnclosureRedundant => '1.3.6.1.4.1.232.22.2.3.3.1.1.5',
35
cpqRackPowerEnclosureLoadBalanced => '1.3.6.1.4.1.232.22.2.3.3.1.1.6',
36
cpqRackPowerEnclosureInputPwrType => '1.3.6.1.4.1.232.22.2.3.3.1.1.7',
37
cpqRackPowerEnclosurePwrFeedMax => '1.3.6.1.4.1.232.22.2.3.3.1.1.8',
38
cpqRackPowerEnclosureCondition => '1.3.6.1.4.1.232.22.2.3.3.1.1.9',
39
cpqRackPowerEnclosureRedundantValue => {
44
cpqRackPowerEnclosureLoadBalancedValue => {
47
2 => 'notLoadBalanced',
50
cpqRackPowerEnclosureInputPwrTypeValue => {
56
cpqRackPowerEnclosureConditionValue => {
64
# INDEX { cpqRackPowerEnclosureRack, cpqRackPowerEnclosureIndex }
65
# dreckada dreck, dreckada
66
foreach ($self->get_entries($oids, 'cpqRackPowerEnclosureEntry')) {
67
push(@{$self->{power_enclosures}},
68
HP::BladeSystem::Component::PowerEnclosureSubsystem::PowerEnclosure->new(%{$_}));
74
foreach (@{$self->{power_enclosures}}) {
81
foreach (@{$self->{power_enclosures}}) {
87
package HP::BladeSystem::Component::PowerEnclosureSubsystem::PowerEnclosure;
88
our @ISA = qw(HP::BladeSystem::Component::PowerEnclosureSubsystem);
91
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
97
runtime => $params{runtime},
98
rawdata => $params{rawdata},
99
method => $params{method},
102
extendedinfo => undef,
104
map { $self->{$_} = $params{$_} } grep /cpqRackPowerEnclosure/, keys %params;
105
$self->{name} = $self->{cpqRackPowerEnclosureRack}.':'.$self->{cpqRackPowerEnclosureIndex};
113
$self->blacklist('pe', $self->{name});
114
my $info = sprintf 'power enclosure %s \'%s\' condition is %s',
115
$self->{name}, $self->{cpqRackPowerEnclosureName}, $self->{cpqRackPowerEnclosureCondition};
116
$self->add_info($info);
117
if ($self->{cpqRackPowerEnclosureCondition} eq 'degraded') {
118
$self->add_message(WARNING, $info);
124
printf "[POWER_ENCLOSURE_%s]\n", $self->{cpqRackPowerEnclosureName};
125
foreach (qw(cpqRackPowerEnclosureRack cpqRackPowerEnclosureIndex
126
cpqRackPowerEnclosureName cpqRackPowerEnclosureMgmgtBoardSerialNum
127
cpqRackPowerEnclosureRedundant cpqRackPowerEnclosureLoadBalanced
128
cpqRackPowerEnclosureInputPwrType cpqRackPowerEnclosurePwrFeedMax
129
cpqRackPowerEnclosureCondition)) {
130
printf "%s: %s\n", $_, $self->{$_};