~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/BladeSystem/Component/ServerBladeSubsystem.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::BladeSystem::Component::ServerBladeSubsystem;
 
2
our @ISA = qw(HP::BladeSystem::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
    server_blades => [],
 
15
    blacklisted => 0,
 
16
    info => undef,
 
17
    extendedinfo => undef,
 
18
  };
 
19
  bless $self, $class;
 
20
  $self->init();
 
21
  return $self;
 
22
}
 
23
 
 
24
sub init {
 
25
  my $self = shift;
 
26
  my $oids = {
 
27
      cpqRackServerBladeEntry => '1.3.6.1.4.1.232.22.2.4.1.1.1',
 
28
      cpqRackServerBladeRack => '1.3.6.1.4.1.232.22.2.4.1.1.1.1',
 
29
      cpqRackServerBladeChassis => '1.3.6.1.4.1.232.22.2.4.1.1.1.2',
 
30
      cpqRackServerBladeIndex => '1.3.6.1.4.1.232.22.2.4.1.1.1.3',
 
31
      cpqRackServerBladeName => '1.3.6.1.4.1.232.22.2.4.1.1.1.4',
 
32
      cpqRackServerBladeEnclosureName => '1.3.6.1.4.1.232.22.2.4.1.1.1.5',
 
33
      cpqRackServerBladePartNumber => '1.3.6.1.4.1.232.22.2.4.1.1.1.6',
 
34
      cpqRackServerBladeSparePartNumber => '1.3.6.1.4.1.232.22.2.4.1.1.1.7',
 
35
      cpqRackServerBladePosition => '1.3.6.1.4.1.232.22.2.4.1.1.1.8',
 
36
      cpqRackServerBladeHeight => '1.3.6.1.4.1.232.22.2.4.1.1.1.9',
 
37
      cpqRackServerBladeWidth => '1.3.6.1.4.1.232.22.2.4.1.1.1.10',
 
38
      cpqRackServerBladeDepth => '1.3.6.1.4.1.232.22.2.4.1.1.1.11',
 
39
      cpqRackServerBladePresent => '1.3.6.1.4.1.232.22.2.4.1.1.1.12',
 
40
      cpqRackServerBladeHasFuses => '1.3.6.1.4.1.232.22.2.4.1.1.1.13',
 
41
      cpqRackServerBladeEnclosureSerialNum => '1.3.6.1.4.1.232.22.2.4.1.1.1.14',
 
42
      cpqRackServerBladeSlotsUsed => '1.3.6.1.4.1.232.22.2.4.1.1.1.15',
 
43
      cpqRackServerBladeStatus => '1.3.6.1.4.1.232.22.2.4.1.1.1.21',
 
44
      cpqRackServerBladeDiagnosticString => '1.3.6.1.4.1.232.22.2.4.1.1.1.24',
 
45
      cpqRackServerBladePowered => '1.3.6.1.4.1.232.22.2.4.1.1.1.25',
 
46
      cpqRackServerBladePOSTStatus => '1.3.6.1.4.1.232.22.2.4.1.1.1.35',
 
47
      cpqRackServerBladePresentValue => {
 
48
          1 => 'other',
 
49
          2 => 'absent',
 
50
          3 => 'present',
 
51
      },
 
52
      cpqRackServerBladeStatusValue => {
 
53
          1 => 'other',
 
54
          2 => 'ok',
 
55
          3 => 'degraded',
 
56
          4 => 'failed',
 
57
      },
 
58
      cpqRackServerBladePoweredValue => {
 
59
          0 => 'aechz',
 
60
          1 => 'other',
 
61
          2 => 'on',
 
62
          3 => 'off',
 
63
          4 => 'powerStagedOff',
 
64
          5 => 'reboot',
 
65
      },
 
66
      cpqRackServerBladePOSTStatusValue => {
 
67
          1 => 'other',
 
68
          2 => 'started',
 
69
          3 => 'completed',
 
70
          4 => 'failed',
 
71
      },
 
72
  };
 
73
 
 
74
 
 
75
  # INDEX { cpqRackServerBladeRack, cpqRackServerBladeChassis, cpqRackServerBladeIndex }
 
76
  # dreckada dreck, dreckada
 
77
  foreach ($self->get_entries($oids, 'cpqRackServerBladeEntry')) {
 
78
    push(@{$self->{server_blades}},
 
79
        HP::BladeSystem::Component::ServerBladeSubsystem::ServerBlade->new(%{$_}));
 
80
  }
 
81
}
 
82
 
 
83
sub check {
 
84
  my $self = shift;
 
85
  foreach (@{$self->{server_blades}}) {
 
86
    $_->check() if $_->{cpqRackServerBladePresent} eq 'present' ||
 
87
        $self->{runtime}->{options}->{verbose} >= 3; # absent blades nur bei -vvv
 
88
  }
 
89
}
 
90
 
 
91
sub dump {
 
92
  my $self = shift;
 
93
  foreach (@{$self->{server_blades}}) {
 
94
    $_->dump() if $_->{cpqRackServerBladePresent} eq 'present' ||
 
95
        $self->{runtime}->{options}->{verbose} >= 3; # absent blades nur bei -vvv
 
96
  }
 
97
}
 
98
 
 
99
 
 
100
package HP::BladeSystem::Component::ServerBladeSubsystem::ServerBlade;
 
101
our @ISA = qw(HP::BladeSystem::Component::ServerBladeSubsystem);
 
102
 
 
103
use strict;
 
104
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
 
105
 
 
106
sub new {
 
107
  my $class = shift;
 
108
  my %params = @_;
 
109
  my $self = {
 
110
    runtime => $params{runtime},
 
111
    rawdata => $params{rawdata},
 
112
    method => $params{method},
 
113
    blacklisted => 0,
 
114
    info => undef,
 
115
    extendedinfo => undef,
 
116
  };
 
117
  map { $self->{$_} = $params{$_} } grep /cpqRackServerBlade/, keys %params;
 
118
  $self->{cpqRackServerBladeDiagnosticString} ||= '';
 
119
  $self->{name} = $self->{cpqRackServerBladeRack}.
 
120
      ':'.$self->{cpqRackServerBladeChassis}.
 
121
      ':'.$self->{cpqRackServerBladeIndex};
 
122
  bless $self, $class;
 
123
  $self->init();
 
124
#printf "%s\n", Data::Dumper::Dumper(\%params);
 
125
  return $self;
 
126
}
 
127
 
 
128
sub check {
 
129
  my $self = shift;
 
130
  $self->blacklist('sb', $self->{name});
 
131
  my $info = sprintf 'server blade %s \'%s\' is %s, status is %s, powered is %s',
 
132
      $self->{name}, $self->{cpqRackServerBladeName}, $self->{cpqRackServerBladePresent},
 
133
      $self->{cpqRackServerBladeStatus}, $self->{cpqRackServerBladePowered};
 
134
  $self->add_info($info);
 
135
  if ($self->{cpqRackServerBladePowered} eq 'on') {
 
136
    if ($self->{cpqRackServerBladeStatus} eq 'degraded') {
 
137
      $self->add_message(WARNING, sprintf 'server blade %s diag is \'%s\', post status is %s',
 
138
          $self->{cpqRackServerBladeName}, $self->{cpqRackServerBladeDiagnosticString},
 
139
          $self->{cpqRackServerBladePOSTStatus});
 
140
    } elsif ($self->{cpqRackServerBladeStatus} eq 'failed') {
 
141
      $self->add_message(CRITICAL, sprintf 'server blade %s diag is \'%s\', post status is %s',
 
142
          $self->{cpqRackServerBladeName}, $self->{cpqRackServerBladeDiagnosticString},
 
143
          $self->{cpqRackServerBladePOSTStatus});
 
144
    } 
 
145
  }
 
146
 
147
  
 
148
sub dump {
 
149
  my $self = shift;
 
150
    printf "[SERVER_BLADE_%s]\n", $self->{cpqRackServerBladeName};
 
151
  foreach (qw(cpqRackServerBladeRack cpqRackServerBladeChassis cpqRackServerBladeIndex cpqRackServerBladeName cpqRackServerBladeEnclosureName cpqRackServerBladePartNumber cpqRackServerBladeSparePartNumber cpqRackServerBladePosition cpqRackServerBladeHeight cpqRackServerBladeWidth cpqRackServerBladeDepth cpqRackServerBladePresent cpqRackServerBladeHasFuses cpqRackServerBladeEnclosureSerialNum cpqRackServerBladeSlotsUsed cpqRackServerBladeStatus cpqRackServerBladeDiagnosticString cpqRackServerBladePowered cpqRackServerBladePOSTStatus)) {
 
152
    printf "%s: %s\n", $_, $self->{$_};
 
153
  }
 
154
  printf "\n";
 
155
}
 
156
 
 
157
 
 
158
1;