1
package HP::Proliant::Component::PowersupplySubsystem;
2
our @ISA = qw(HP::Proliant::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
condition => $params{condition},
15
status => $params{status},
17
powerconverters => [],
20
extendedinfo => undef,
23
if ($self->{method} eq 'snmp') {
24
return HP::Proliant::Component::PowersupplySubsystem::SNMP->new(%params);
25
} elsif ($self->{method} eq 'cli') {
26
return HP::Proliant::Component::PowersupplySubsystem::CLI->new(%params);
36
$self->add_info('checking power supplies');
37
if (scalar (@{$self->{powersupplies}}) == 0) {
38
#$self->overall_check();
40
foreach (@{$self->{powersupplies}}) {
48
foreach (@{$self->{powersupplies}}) {
54
package HP::Proliant::Component::PowersupplySubsystem::Powersupply;
55
our @ISA = qw(HP::Proliant::Component::PowersupplySubsystem);
58
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
64
runtime => $params{runtime},
65
cpqHeFltTolPowerSupplyChassis => $params{cpqHeFltTolPowerSupplyChassis},
66
cpqHeFltTolPowerSupplyBay => $params{cpqHeFltTolPowerSupplyBay},
67
cpqHeFltTolPowerSupplyPresent => $params{cpqHeFltTolPowerSupplyPresent},
68
cpqHeFltTolPowerSupplyCondition => $params{cpqHeFltTolPowerSupplyCondition},
69
cpqHeFltTolPowerSupplyRedundant => $params{cpqHeFltTolPowerSupplyRedundant},
70
cpqHeFltTolPowerSupplyCapacityUsed => $params{cpqHeFltTolPowerSupplyCapacityUsed},
71
cpqHeFltTolPowerSupplyCapacityMaximum => $params{cpqHeFltTolPowerSupplyCapacityMaximum},
74
extendexinfo => undef,
82
$self->blacklist('p', $self->{cpqHeFltTolPowerSupplyBay});
83
if ($self->{cpqHeFltTolPowerSupplyPresent} eq "present") {
84
if ($self->{cpqHeFltTolPowerSupplyCondition} ne "ok") {
85
if ($self->{cpqHeFltTolPowerSupplyCondition} eq "other") {
86
$self->add_info(sprintf "powersupply %d is missing",
87
$self->{cpqHeFltTolPowerSupplyBay});
89
$self->add_info(sprintf "powersupply %d needs attention (%s)",
90
$self->{cpqHeFltTolPowerSupplyBay},
91
$self->{cpqHeFltTolPowerSupplyCondition});
93
$self->add_message(CRITICAL, $self->{info});
95
$self->add_info(sprintf "powersupply %d is %s",
96
$self->{cpqHeFltTolPowerSupplyBay},
97
$self->{cpqHeFltTolPowerSupplyCondition});
99
$self->add_extendedinfo(sprintf "ps_%s=%s",
100
$self->{cpqHeFltTolPowerSupplyBay},
101
$self->{cpqHeFltTolPowerSupplyCondition});
102
if ($self->{cpqHeFltTolPowerSupplyCapacityUsed} &&
103
$self->{cpqHeFltTolPowerSupplyCapacityMaximum}) {
104
if ($self->{runtime}->{options}->{perfdata}) {
105
$self->{runtime}->{plugin}->add_perfdata(
106
label => sprintf("pc_%s", $self->{cpqHeFltTolPowerSupplyBay}),
107
value => $self->{cpqHeFltTolPowerSupplyCapacityUsed},
108
warning => $self->{cpqHeFltTolPowerSupplyCapacityMaximum},
109
critical => $self->{cpqHeFltTolPowerSupplyCapacityMaximum}
112
} elsif ($self->{cpqHeFltTolPowerSupplyCapacityUsed}) {
113
if ($self->{runtime}->{options}->{perfdata}) {
114
$self->{runtime}->{plugin}->add_perfdata(
115
label => sprintf("pc_%s", $self->{cpqHeFltTolPowerSupplyBay}),
116
value => $self->{cpqHeFltTolPowerSupplyCapacityUsed}
121
$self->add_info(sprintf "powersupply %d is %s",
122
$self->{cpqHeFltTolPowerSupplyBay},
123
$self->{cpqHeFltTolPowerSupplyPresent});
124
$self->add_extendedinfo(sprintf "ps_%s=%s",
125
$self->{cpqHeFltTolPowerSupplyBay},
126
$self->{cpqHeFltTolPowerSupplyPresent});
133
printf "[PS_%s]\n", $self->{cpqHeFltTolPowerSupplyBay};
134
foreach (qw(cpqHeFltTolPowerSupplyBay cpqHeFltTolPowerSupplyChassis
135
cpqHeFltTolPowerSupplyPresent cpqHeFltTolPowerSupplyCondition
136
cpqHeFltTolPowerSupplyRedundant cpqHeFltTolPowerSupplyCapacityUsed
137
cpqHeFltTolPowerSupplyCapacityMaximum)) {
138
printf "%s: %s\n", $_, $self->{$_};
140
printf "info: %s\n\n", $self->{info};
144
package HP::Proliant::Component::PowersupplySubsystem::Powerconverter;
145
our @ISA = qw(HP::Proliant::Component::PowersupplySubsystem);
148
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
154
runtime => $params{runtime},
156
cpqHePowerConvEntry => $params{cpqHePowerConvEntry},
157
cpqHePowerConvChassis => $params{cpqHePowerConvChassis},
158
cpqHePowerConvIndex => $params{cpqHePowerConvIndex},
159
cpqHePowerConvPresent => $params{cpqHePowerConvPresent},
160
cpqHePowerConvRedundant => $params{cpqHePowerConvRedundant},
161
cpqHePowerConvCondition => $params{cpqHePowerConvCondition},
162
cpqHePowerConvHwLocation => $params{cpqHePowerConvHwLocation},
165
extendexinfo => undef,
173
$self->blacklist('pc', $self->{cpqHePowerConvIndex});
174
if ($self->{cpqHePowerConvPresent} eq "present") {
175
if ($self->{cpqHePowerConvCondition} ne "ok") {
176
if ($self->{cpqHePowerConvCondition} eq "other") {
177
$self->add_info(sprintf "powerconverter %d is missing",
178
$self->{cpqHePowerConvIndex});
180
$self->add_info(sprintf "powerconverter %d needs attention (%s)",
181
$self->{cpqHePowerConvIndex},
182
$self->{cpqHePowerConvCondition});
184
$self->add_message(CRITICAL, $self->{info});
186
$self->add_info(sprintf "powerconverter %d is %s",
187
$self->{cpqHePowerConvIndex},
188
$self->{cpqHePowerConvCondition});
190
$self->add_extendedinfo(sprintf "pc_%s=%s",
191
$self->{cpqHePowerConvIndex},
192
$self->{cpqHePowerConvCondition});
194
$self->add_info(sprintf "powerconverter %d is %s",
195
$self->{cpqHePowerConvIndex},
196
$self->{cpqHePowerConvPresent});
197
$self->add_extendedinfo(sprintf "pc_%s=%s",
198
$self->{cpqHePowerConvIndex},
199
$self->{cpqHePowerConvPresent});
206
printf "[PS_%s]\n", ($self->{cpqHePowerConvChassis} ? $self->{cpqHePowerConvChassis}.":" : "").$self->{cpqHePowerConvIndex};
207
foreach (qw(cpqHePowerConvIndex cpqHePowerConvPresent cpqHePowerConvRedundant cpqHePowerConvCondition)) {
208
printf "%s: %s\n", $_, $self->{$_};
210
printf "info: %s\n\n", $self->{info};