~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/plugins-scripts/HP/Proliant/Component/CpuSubsystem.pm

  • Committer: Package Import Robot
  • Author(s): Bernd Zeimetz
  • Date: 2013-05-21 22:11:50 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130521221150-k5bda5v5euvt7wg9
Tags: 6.20130521
* [e68c82e1] check_raid: do not run hpacucli if cciss_vol_status is available.
* [4a1c57e8] Also support tw-cli as additional name for the 3ware binary.
  Thanks to Dennis Hoppe
* [eb5e1c7c] Add /run/ to the check_libs ignore file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package HP::Proliant::Component::CpuSubsystem;
 
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
################################## scrapiron ##########
 
10
  my %params = @_;
 
11
  my $self = {
 
12
    runtime => $params{runtime},
 
13
    rawdata => $params{rawdata},
 
14
    method => $params{method},
 
15
    condition => $params{condition},
 
16
    status => $params{status},
 
17
    cpus => [],
 
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::CpuSubsystem::SNMP->new(%params);
 
25
  } elsif ($self->{method} eq 'cli') {
 
26
    return HP::Proliant::Component::CpuSubsystem::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 cpus');
 
37
  if (scalar (@{$self->{cpus}}) == 0) {
 
38
    # sachen gibts.....
 
39
  #  $self->overall_check(); # sowas ist mir nur einmal untergekommen
 
40
  } else {
 
41
    foreach (@{$self->{cpus}}) {
 
42
      $_->check();
 
43
    }
 
44
  }
 
45
}
 
46
 
 
47
sub num_cpus {
 
48
  my $self = shift;
 
49
  return scalar @{$self->{cpus}};
 
50
}
 
51
 
 
52
sub dump {
 
53
  my $self = shift;
 
54
  foreach (@{$self->{cpus}}) {
 
55
    $_->dump();
 
56
  }
 
57
}
 
58
 
 
59
 
 
60
package HP::Proliant::Component::CpuSubsystem::Cpu;
 
61
our @ISA = qw(HP::Proliant::Component::CpuSubsystem);
 
62
 
 
63
use strict;
 
64
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 };
 
65
 
 
66
sub new {
 
67
  my $class = shift;
 
68
  my %params = @_;
 
69
  my $self = {
 
70
    runtime => $params{runtime},
 
71
    cpqSeCpuSlot => $params{cpqSeCpuSlot},
 
72
    cpqSeCpuUnitIndex => $params{cpqSeCpuUnitIndex},
 
73
    cpqSeCpuName => $params{cpqSeCpuName},
 
74
    cpqSeCpuStatus => $params{cpqSeCpuStatus},
 
75
    blacklisted => 0,
 
76
    info => undef,
 
77
    extendedinfo => undef,
 
78
  };
 
79
  bless $self, $class;
 
80
  return $self;
 
81
}
 
82
 
 
83
sub check {
 
84
  my $self = shift;
 
85
  $self->blacklist('c', $self->{cpqSeCpuUnitIndex});
 
86
  if ($self->{cpqSeCpuStatus} ne "ok") {
 
87
    if ($self->{runtime}->{options}{scrapiron} &&
 
88
        ($self->{cpqSeCpuStatus} eq "unknown")) {
 
89
      $self->add_info(sprintf "cpu %d probably ok (%s)",
 
90
          $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus});
 
91
    } else {
 
92
      $self->add_info(sprintf "cpu %d needs attention (%s)",
 
93
          $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus});
 
94
      $self->add_message(CRITICAL, $self->{info});
 
95
    }
 
96
  } else {
 
97
    $self->add_info(sprintf "cpu %d is %s", 
 
98
        $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus});
 
99
  }
 
100
  $self->add_extendedinfo(sprintf "cpu_%s=%s",
 
101
      $self->{cpqSeCpuUnitIndex}, $self->{cpqSeCpuStatus});
 
102
}
 
103
 
 
104
sub dump {
 
105
  my $self = shift;
 
106
  printf "[CPU_%s]\n", $self->{cpqSeCpuUnitIndex};
 
107
  foreach (qw(cpqSeCpuSlot cpqSeCpuUnitIndex cpqSeCpuName cpqSeCpuStatus)) {
 
108
    printf "%s: %s\n", $_, $self->{$_};
 
109
  }
 
110
  printf "info: %s\n", $self->{info};
 
111
  printf "\n";
 
112
}