+ fix clariion sp mode
This commit is contained in:
parent
2e71b45c25
commit
1e4f43a282
|
@ -18,38 +18,116 @@
|
|||
# limitations under the License.
|
||||
#
|
||||
|
||||
package centreon::common::emc::navisphere::mode::spcomponents::sp;
|
||||
package centreon::common::emc::navisphere::mode::sp;
|
||||
|
||||
use base qw(centreon::plugins::templates::hardware);
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub load { };
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
$self->{output}->output_add(long_msg => "Checking sp");
|
||||
$self->{components}->{sp} = {name => 'sp', total => 0, skip => 0};
|
||||
return if ($self->check_filter(section => 'sp'));
|
||||
sub set_system {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
# SP A State: Present
|
||||
while ($self->{response} =~ /^SP\s+(\S+)\s+State:\s+(.*)$/mgi) {
|
||||
my $instance = $1;
|
||||
my $state = $2;
|
||||
|
||||
next if ($self->check_filter(section => 'sp', instance => $instance));
|
||||
$self->{components}->{sp}->{total}++;
|
||||
|
||||
$self->{output}->output_add(long_msg => sprintf("sp '%s' state is %s.",
|
||||
$instance, $state)
|
||||
);
|
||||
my $exit = $self->get_severity(section => 'sp', value => $state);
|
||||
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
|
||||
$self->{output}->output_add(severity => $exit,
|
||||
short_msg => sprintf("sp '%s' state is %s",
|
||||
$instance, $state));
|
||||
}
|
||||
}
|
||||
$self->{regexp_threshold_overload_check_section_option} = '^(fan|lcc|psu|battery|memory|cpu|iomodule|cable)$';
|
||||
|
||||
$self->{cb_hook2} = 'navisphere_execute';
|
||||
|
||||
$self->{thresholds} = {
|
||||
battery => [
|
||||
['^(Not Ready|Testing|Unknown)$', 'WARNING'],
|
||||
['^(?!(Present|Valid)$)', 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
psu => [
|
||||
['^(?!(Present|Valid)$)', 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
sp => [
|
||||
['^(?!(Present|Valid)$)', 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
cable => [
|
||||
['^(.*Unknown.*)$' => 'WARNING'],
|
||||
['^(?!(Present|Valid)$)' => 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
cpu => [
|
||||
['^(?!(Present|Valid)$)' => 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
fan => [
|
||||
['^(?!(Present|Valid)$)' => 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
io => [
|
||||
['^(?!(Present|Valid|Empty)$)' => 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
lcc => [
|
||||
['^(?!(Present|Valid)$)' => 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
dimm => [
|
||||
['^(?!(Present|Valid)$)' => 'CRITICAL'],
|
||||
['.*', 'OK'],
|
||||
],
|
||||
};
|
||||
|
||||
$self->{components_path} = 'centreon::common::emc::navisphere::mode::spcomponents';
|
||||
$self->{components_module} = ['fan', 'lcc', 'psu', 'battery', 'memory', 'cpu', 'iomodule', 'cable'];
|
||||
}
|
||||
|
||||
1;
|
||||
sub navisphere_execute {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
$self->{response} = $options{custom}->execute_command(cmd => 'getcrus ' . $self->{option_results}->{getcrus_options});
|
||||
chomp $self->{response};
|
||||
}
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options, no_absent => 1, no_performance => 1);
|
||||
bless $self, $class;
|
||||
|
||||
$self->{version} = '1.0';
|
||||
$options{options}->add_options(arguments =>
|
||||
{
|
||||
"getcrus-options:s" => { name => 'getcrus_options', default => '-all' },
|
||||
});
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 MODE
|
||||
|
||||
Check status of storage processor.
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<--getcrus-options>
|
||||
|
||||
Set option for 'getcrus' command (Default: '-all').
|
||||
'-all' option is for some new flare version.
|
||||
|
||||
=item B<--component>
|
||||
|
||||
Which component to check (Default: '.*').
|
||||
Can be: 'fan', 'lcc', 'psu', 'battery', 'memory', 'cpu', 'iomodule', 'cable'.
|
||||
|
||||
=item B<--filter>
|
||||
|
||||
Exclude some parts (comma seperated list) (Example: --filter=lcc --filter=fan)
|
||||
Can also exclude specific instance: --filter=fan,1.2
|
||||
|
||||
=item B<--no-component>
|
||||
|
||||
Return an error if no compenents are checked.
|
||||
If total (with skipped) is 0. (Default: 'critical' returns).
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
Loading…
Reference in New Issue