~ubuntu-branches/ubuntu/trusty/nagios-plugins-contrib/trusty-proposed

« back to all changes in this revision

Viewing changes to check_hpasm/check_hpasm-4.6.3.2/plugins-scripts/HP/Proliant/Component/PowersupplySubsystem.pm

  • Committer: Package Import Robot
  • Author(s): Bernd Zeimetz, Bernd Zeimetz, Jan Wagner, Evgeni Golov
  • Date: 2013-06-14 20:53:49 UTC
  • Revision ID: package-import@ubuntu.com-20130614205349-34xiy38pm1hzpjoi
Tags: 7.20130614
[ Bernd Zeimetz ]
* [036816ff] Merge pull request #15 from evgeni/master
  check_packages should find security updates on the official security mirror too
* [658a2e93] Add check_checksums nagios plugin.
* [9d5d2056] Updating check_raid.
* [e3ec1293] Updating check_ssl_cert to 1.14.6
* [779543ef] Updating check_hpasm to 4.6.3.2
* [0c838ee9] Updating check_multipath to 0.1.9
* [bec11251] Updating check_whois to 1.13
* [8e0a65d0] Refreshing patches.
* [c0b88cdb] Auto update of debian/copyright
* [59648a17] Fix src link for check_hpasm
* [8c242d0f] Support pre-Wheezy versions of coretutils in check_checksums.
* [7d3d2a06] Update release date in changelog (gah!).
* [768e463b] Merge pull request #16 from evgeni/master
  check_libs: ignore /var/lib/postgresql/ and /var/log/
* [2b9aace5] Bumping standards-Verison, no changes needed.

[ Jan Wagner ]
* [3bb873e4] disable epn for check_rbl

[ Evgeni Golov ]
* [2a7ab4b8] check_libs: ignore /var/spool/

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package HP::Proliant::Component::PowersupplySubsystem;
 
2
our @ISA = qw(HP::Proliant::Component);
 
3
 
 
4
use strict;
 
5
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
 
6
 
 
7
sub new {
 
8
  my $class = shift;
 
9
  my %params = @_;
 
10
  my $self = {
 
11
    runtime => $params{runtime},
 
12
    rawdata => $params{rawdata},
 
13
    method => $params{method},
 
14
    condition => $params{condition},
 
15
    status => $params{status},
 
16
    powersupplies => [],
 
17
    powerconverters => [],
 
18
    blacklisted => 0,
 
19
    info => undef,
 
20
    extendedinfo => undef,
 
21
  };
 
22
  bless $self, $class;
 
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);
 
27
  } else {
 
28
    die "unknown method";
 
29
  }
 
30
  return $self;
 
31
}
 
32
 
 
33
sub check {
 
34
  my $self = shift;
 
35
  my $errorfound = 0;
 
36
  $self->add_info('checking power supplies');
 
37
  if (scalar (@{$self->{powersupplies}}) == 0) {
 
38
    #$self->overall_check();
 
39
  } else {
 
40
    foreach (@{$self->{powersupplies}}) {
 
41
      $_->check();
 
42
    }
 
43
  }
 
44
}
 
45
 
 
46
sub dump {
 
47
  my $self = shift;
 
48
  foreach (@{$self->{powersupplies}}) {
 
49
    $_->dump();
 
50
  }
 
51
}
 
52
 
 
53
 
 
54
package HP::Proliant::Component::PowersupplySubsystem::Powersupply;
 
55
our @ISA = qw(HP::Proliant::Component::PowersupplySubsystem);
 
56
 
 
57
use strict;
 
58
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
 
59
 
 
60
sub new {
 
61
  my $class = shift;
 
62
  my %params = @_;
 
63
  my $self = {
 
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} || 0,
 
71
    cpqHeFltTolPowerSupplyCapacityMaximum => $params{cpqHeFltTolPowerSupplyCapacityMaximum} || 0,
 
72
    blacklisted => 0,
 
73
    info => undef,
 
74
    extendexinfo => undef,
 
75
  };
 
76
  bless $self, $class;
 
77
  return $self;
 
78
}
 
79
 
 
80
sub check {
 
81
  my $self = shift;
 
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});
 
88
      } else {
 
89
        $self->add_info(sprintf "powersupply %d needs attention (%s)",
 
90
            $self->{cpqHeFltTolPowerSupplyBay},
 
91
            $self->{cpqHeFltTolPowerSupplyCondition});
 
92
      }
 
93
      $self->add_message(CRITICAL, $self->{info});
 
94
    } else {
 
95
      $self->add_info(sprintf "powersupply %d is %s",
 
96
          $self->{cpqHeFltTolPowerSupplyBay},
 
97
          $self->{cpqHeFltTolPowerSupplyCondition});
 
98
    }
 
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}
 
110
        );
 
111
      }
 
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}
 
117
        );
 
118
      }
 
119
    }
 
120
  } else {
 
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});
 
127
  }
 
128
}
 
129
 
 
130
 
 
131
sub dump {
 
132
  my $self = shift;
 
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->{$_};
 
139
  }
 
140
  printf "info: %s\n\n", $self->{info};
 
141
}
 
142
 
 
143
 
 
144
package HP::Proliant::Component::PowersupplySubsystem::Powerconverter;
 
145
our @ISA = qw(HP::Proliant::Component::PowersupplySubsystem);
 
146
 
 
147
use strict;
 
148
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
 
149
 
 
150
sub new {
 
151
  my $class = shift;
 
152
  my %params = @_;
 
153
  my $self = {
 
154
    runtime => $params{runtime},
 
155
 
 
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},
 
163
    blacklisted => 0,
 
164
    info => undef,
 
165
    extendexinfo => undef,
 
166
  };
 
167
  bless $self, $class;
 
168
  return $self;
 
169
}
 
170
 
 
171
sub check {
 
172
  my $self = shift;
 
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});
 
179
      } else {
 
180
        $self->add_info(sprintf "powerconverter %d needs attention (%s)",
 
181
            $self->{cpqHePowerConvIndex},
 
182
            $self->{cpqHePowerConvCondition});
 
183
      }
 
184
      $self->add_message(CRITICAL, $self->{info});
 
185
    } else {
 
186
      $self->add_info(sprintf "powerconverter %d is %s",
 
187
          $self->{cpqHePowerConvIndex},
 
188
          $self->{cpqHePowerConvCondition});
 
189
    }
 
190
    $self->add_extendedinfo(sprintf "pc_%s=%s",
 
191
        $self->{cpqHePowerConvIndex},
 
192
        $self->{cpqHePowerConvCondition});
 
193
  } else {
 
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});
 
200
  }
 
201
}
 
202
 
 
203
 
 
204
sub dump {
 
205
  my $self = shift;
 
206
  printf "[PS_%s]\n", ($self->{cpqHePowerConvChassis} ? $self->{cpqHePowerConvChassis}.":" : "").$self->{cpqHePowerConvIndex};
 
207
  foreach (qw(cpqHePowerConvIndex cpqHePowerConvPresent cpqHePowerConvRedundant cpqHePowerConvCondition)) {
 
208
    printf "%s: %s\n", $_, $self->{$_};
 
209
  }
 
210
  printf "info: %s\n\n", $self->{info};
 
211
}
 
212
 
 
213
 
 
214
1;