1
package HP::BladeSystem::Component::CommonEnclosureSubsystem::ManagerSubsystem;
2
our @ISA = qw(HP::BladeSystem::Component::CommonEnclosureSubsystem);
5
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
11
runtime => $params{runtime},
12
rawdata => $params{rawdata},
13
method => $params{method},
17
extendedinfo => undef,
27
cpqRackCommonEnclosureManagerEntry => '1.3.6.1.4.1.232.22.2.3.1.6.1',
28
cpqRackCommonEnclosureManagerRack => '1.3.6.1.4.1.232.22.2.3.1.6.1.1',
29
cpqRackCommonEnclosureManagerChassis => '1.3.6.1.4.1.232.22.2.3.1.6.1.2',
30
cpqRackCommonEnclosureManagerIndex => '1.3.6.1.4.1.232.22.2.3.1.6.1.3',
31
cpqRackCommonEnclosureManagerEnclosureName => '1.3.6.1.4.1.232.22.2.3.1.6.1.4',
32
cpqRackCommonEnclosureManagerLocation => '1.3.6.1.4.1.232.22.2.3.1.6.1.5',
33
cpqRackCommonEnclosureManagerPartNumber => '1.3.6.1.4.1.232.22.2.3.1.6.1.6',
34
cpqRackCommonEnclosureManagerSparePartNumber => '1.3.6.1.4.1.232.22.2.3.1.6.1.7',
35
cpqRackCommonEnclosureManagerSerialNum => '1.3.6.1.4.1.232.22.2.3.1.6.1.8',
36
cpqRackCommonEnclosureManagerRole => '1.3.6.1.4.1.232.22.2.3.1.6.1.9',
37
cpqRackCommonEnclosureManagerPresent => '1.3.6.1.4.1.232.22.2.3.1.6.1.10',
38
cpqRackCommonEnclosureManagerRedundant => '1.3.6.1.4.1.232.22.2.3.1.6.1.11',
39
cpqRackCommonEnclosureManagerCondition => '1.3.6.1.4.1.232.22.2.3.1.6.1.12',
40
cpqRackCommonEnclosureManagerFWRev => '1.3.6.1.4.1.232.22.2.3.1.6.1.15',
41
cpqRackCommonEnclosureManagerRoleValue => {
45
cpqRackCommonEnclosureManagerPresentValue => {
47
2 => 'absent', # mit vorsicht zu geniessen!
50
cpqRackCommonEnclosureManagerRedundantValue => {
51
0 => 'other', # meiner phantasie entsprungen, da sich hp nicht aeussert
56
cpqRackCommonEnclosureManagerConditionValue => {
63
# INDEX { cpqRackCommonEnclosureManagerRack, cpqRackCommonEnclosureManagerChassis, cpqRackCommonEnclosureManagerIndex }
64
foreach ($self->get_entries($oids, 'cpqRackCommonEnclosureManagerEntry')) {
65
push(@{$self->{managers}},
66
HP::BladeSystem::Component::CommonEnclosureSubsystem::ManagerSubsystem::Manager->new(%{$_}));
72
foreach (@{$self->{managers}}) {
73
$_->check() if $_->{cpqRackCommonEnclosureManagerPresent} eq 'present' ||
74
$self->{runtime}->{options}->{verbose} >= 3; # absent nur bei -vvv
80
foreach (@{$self->{managers}}) {
81
$_->dump() if $_->{cpqRackCommonEnclosureManagerPresent} eq 'present' ||
82
$self->{runtime}->{options}->{verbose} >= 3; # absent nur bei -vvv
87
package HP::BladeSystem::Component::CommonEnclosureSubsystem::ManagerSubsystem::Manager;
89
our @ISA = qw(HP::BladeSystem::Component::CommonEnclosureSubsystem::ManagerSubsystem);
92
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
98
runtime => $params{runtime},
99
rawdata => $params{rawdata},
100
method => $params{method},
103
extendedinfo => undef,
105
map { $self->{$_} = $params{$_} } grep /cpqRackCommonEnclosureManager/, keys %params;
106
$self->{name} = $self->{cpqRackCommonEnclosureManagerRack}.
107
':'.$self->{cpqRackCommonEnclosureManagerChassis}.
108
':'.$self->{cpqRackCommonEnclosureManagerIndex};
109
if ($self->{cpqRackCommonEnclosureManagerPresent} eq "absent" &&
110
defined $self->{cpqRackCommonEnclosureManagerEnclosureName}) {
111
$self->{cpqRackCommonEnclosureManagerPresent} = "present";
119
$self->blacklist('em', $self->{name});
120
my $info = sprintf 'manager %s is %s, location is %s, redundance is %s, condition is %s, role is %s',
121
$self->{name}, $self->{cpqRackCommonEnclosureManagerPresent},
122
$self->{cpqRackCommonEnclosureManagerLocation},
123
$self->{cpqRackCommonEnclosureManagerRedundant},
124
$self->{cpqRackCommonEnclosureManagerCondition},
125
$self->{cpqRackCommonEnclosureManagerRole};
126
$self->add_info($info) if $self->{cpqRackCommonEnclosureManagerPresent} eq 'present' ||
127
$self->{runtime}->{options}->{verbose} >= 3; # absent managers nur bei -vvv
128
if ($self->{cpqRackCommonEnclosureManagerCondition} eq 'degraded') {
129
$self->{info} .= sprintf ' (SparePartNum: %s)',
130
$self->{cpqRackCommonEnclosureManagerSparePartNumber};
131
$self->add_message(WARNING, $self->{info});
132
} elsif ($self->{cpqRackCommonEnclosureManagerCondition} eq 'failed') {
133
$self->{info} .= sprintf ' (SparePartNum: %s)',
134
$self->{cpqRackCommonEnclosureManagerSparePartNumber};
135
$self->add_message(CRITICAL, $self->{info});
141
printf "[ENCLOSURE_MANAGER_%s]\n", $self->{name};
142
foreach (qw(cpqRackCommonEnclosureManagerRack cpqRackCommonEnclosureManagerChassis
143
cpqRackCommonEnclosureManagerIndex cpqRackCommonEnclosureManagerEnclosureName
144
cpqRackCommonEnclosureManagerLocation cpqRackCommonEnclosureManagerPartNumber
145
cpqRackCommonEnclosureManagerSparePartNumber cpqRackCommonEnclosureManagerPresent
146
cpqRackCommonEnclosureManagerRedundant
147
cpqRackCommonEnclosureManagerCondition cpqRackCommonEnclosureManagerFWRev)) {
148
printf "%s: %s\n", $_, $self->{$_};
150
printf "info: %s\n", $self->{info};