diff --git a/centreon/plugins/misc.pm b/centreon/plugins/misc.pm index 598d4bbec..0c2196711 100644 --- a/centreon/plugins/misc.pm +++ b/centreon/plugins/misc.pm @@ -38,6 +38,70 @@ package centreon::plugins::misc; use strict; use warnings; +sub execute { + my (%options) = @_; + my $cmd = ''; + my $args = []; + my ($lerror, $stdout, $exit_code); + + # Build command line + if (defined($options{options}->{remote})) { + my $sub_cmd; + + $cmd = $options{options}->{ssh_path} . '/' if (defined($options{options}->{ssh_path})); + $cmd .= $options{options}->{ssh_command} if (defined($options{options}->{ssh_command})); + + foreach (@{$options{options}->{ssh_option}}) { + my ($lvalue, $rvalue) = split /=/; + push @$args, $lvalue if (defined($lvalue)); + push @$args, $rvalue if (defined($rvalue)); + } + + push @$args, $options{options}->{hostname}; + + $sub_cmd = 'sudo ' if (defined($options{sudo})); + $sub_cmd .= $options{command_path} . '/' if (defined($options{command_path})); + $sub_cmd .= $options{command} . ' ' if (defined($options{command})); + $sub_cmd .= $options{command_options} if (defined($options{command_options})); + ($lerror, $stdout, $exit_code) = backtick( + command => $cmd, + arguments => [@$args, $sub_cmd], + timeout => $options{options}->{timeout}, + wait_exit => 1 + ); + } else { + $cmd = 'sudo ' if (defined($options{sudo})); + $cmd .= $options{command_path} . '/' if (defined($options{command_path})); + $cmd .= $options{command} . ' ' if (defined($options{command})); + $cmd .= $options{command_options} if (defined($options{command_options})); + + ($lerror, $stdout, $exit_code) = backtick( + command => $cmd, + timeout => $options{options}->{timeout}, + wait_exit => 1 + ); + } + + $stdout =~ s/\r//g; + if ($exit_code <= -1000) { + if ($exit_code == -1000) { + $options{output}->output_add(severity => 'UNKNOWN', + short_msg => $stdout); + } + $options{output}->display(); + $options{output}->exit(); + } + if ($exit_code != 0) { + $stdout =~ s/\n/ - /g; + $options{output}->output_add(severity => 'UNKNOWN', + short_msg => "Command error: $stdout"); + $options{output}->display(); + $options{output}->exit(); + } + + return $stdout; +} + sub mymodule_load { my (%options) = @_; my $file; @@ -117,13 +181,13 @@ sub backtick { if ($arg{redirect_stderr} == 1) { open STDERR, ">&STDOUT"; } - open STDERR, ">&STDOUT"; if (scalar(@{$arg{arguments}}) <= 0) { exec($arg{command}); } else { exec($arg{command}, @{$arg{arguments}}); } - exit(0); + # Exec is in error. No such command maybe. + exit(1); } return (0, join("\n", @output), $return_code); diff --git a/hardware/server/sun/sfxxk/mode/boards.pm b/hardware/server/sun/sfxxk/mode/boards.pm new file mode 100644 index 000000000..f38e0275a --- /dev/null +++ b/hardware/server/sun/sfxxk/mode/boards.pm @@ -0,0 +1,196 @@ +################################################################################ +# Copyright 2005-2013 MERETHIS +# Centreon is developped by : Julien Mathis and Romain Le Merlus under +# GPL Licence 2.0. +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation ; either version 2 of the License. +# +# This program is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, see . +# +# Linking this program statically or dynamically with other modules is making a +# combined work based on this program. Thus, the terms and conditions of the GNU +# General Public License cover the whole combination. +# +# As a special exception, the copyright holders of this program give MERETHIS +# permission to link this program with independent modules to produce an executable, +# regardless of the license terms of these independent modules, and to copy and +# distribute the resulting executable under terms of MERETHIS choice, provided that +# MERETHIS also meet, for each linked independent module, the terms and conditions +# of the license of that module. An independent module is a module which is not +# derived from this program. If you modify this program, you may extend this +# exception to your version of the program, but you are not obliged to do so. If you +# do not wish to do so, delete this exception statement from your version. +# +# For more information : contact@centreon.com +# Authors : Quentin Garnier +# +#################################################################################### + +package hardware::server::sun::sfxxk::mode::boards; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; +use centreon::plugins::misc; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "hostname:s" => { name => 'hostname' }, + "remote" => { name => 'remote' }, + "ssh-option:s@" => { name => 'ssh_option' }, + "ssh-path:s" => { name => 'ssh_path' }, + "ssh-command:s" => { name => 'ssh_command', default => 'ssh' }, + "timeout:s" => { name => 'timeout', default => 30 }, + "sudo-pasv" => { name => 'sudo_pasv' }, + "command-pasv:s" => { name => 'command_pasv', default => 'showfailover' }, + "command-path-pasv:s" => { name => 'command_path_pasv', default => '/opt/SUNWSMS/bin' }, + "command-options-pasv:s" => { name => 'command_options_pasv', default => '-r 2>&1' }, + "sudo" => { name => 'sudo' }, + "command:s" => { name => 'command', default => 'showboards' }, + "command-path:s" => { name => 'command_path', default => '/opt/SUNWSMS/bin' }, + "command-options:s" => { name => 'command_options', default => '2>&1' }, + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub run { + my ($self, %options) = @_; + my $stdout; + + $stdout = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo_pasv}, + command => $self->{option_results}->{command_pasv}, + command_path => $self->{option_results}->{command_path_pasv}, + command_options => $self->{option_results}->{command_options_pasv}); + if ($stdout !~ /MAIN/i) { + $self->{output}->output_add(severity => 'OK', + short_msg => "System Controller is in spare mode."); + $self->{output}->display(); + $self->{output}->exit(); + } + + $stdout = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + + $self->{output}->output_add(severity => 'OK', + short_msg => "No problems detected."); + if ($stdout =~ /^Location(.*)/ims) { + #Location Pwr Type of Board Board Status Test Status Domain + #-------- --- ------------- ------------ ----------- ------ + #SB0 Off V3CPU Assigned Unknown B + #SB1 Off V3CPU Assigned Unknown A + #SB2 Off V3CPU Available Unknown Isolated + #IO11 Off HPCI Assigned Failed engB + my @content = split(/\n/, $1); + shift @content; + foreach my $line (@content) { + + next if ($line =~ /^---/); + next if ($line !~ /^\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)(\s{2}|$)/); + my ($location, $pwr, $type_board, $board_status, $test_status, $domain) = ($1, $2, $3, $4, $5, $6); + + if ($test_status =~ /Failed|Degraded/i) { + $self->{output}->output_add(severity => 'CRITICAL', + short_msg => "Error on board '$location' ($type_board) with test status '$test_status'"); + } + } + } + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check Sun 'sfxxk' boards. + +=over 8 + +=item B<--remote> + +Execute command remotely in 'ssh'. + +=item B<--hostname> + +Hostname to query (need --remote). + +=item B<--ssh-option> + +Specify multiple options like the user (example: --ssh-option='-l=centreon-engine" --ssh-option='-p=52"). + +=item B<--ssh-path> + +Specify ssh command path (default: none) + +=item B<--ssh-command> + +Specify ssh command (default: 'ssh'). Useful to use 'plink'. + +=item B<--timeout> + +Timeout in seconds for the command (Default: 30). + +=item B<--sudo-pasv> + +Use 'sudo' to execute the command pasv. + +=item B<--command-pasv> + +Command to know if system controller is 'active' (Default: 'showfailover'). + +=item B<--command-path-pasv> + +Command pasv path (Default: '/opt/SUNWSMS/bin'). + +=item B<--command-options-pasv> + +Command pasv options (Default: '-r 2>&1'). + +=item B<--sudo> + +Use 'sudo' to execute the command. + +=item B<--command> + +Command to get information (Default: 'showboards'). +Can be changed if you have output in a file. + +=item B<--command-path> + +Command path (Default: '/opt/SUNWSMS/bin'). + +=item B<--command-options> + +Command options (Default: '2>&1'). + +=back + +=cut diff --git a/hardware/server/sun/sfxxk/mode/environment.pm b/hardware/server/sun/sfxxk/mode/environment.pm new file mode 100644 index 000000000..93828d4de --- /dev/null +++ b/hardware/server/sun/sfxxk/mode/environment.pm @@ -0,0 +1,279 @@ +################################################################################ +# Copyright 2005-2013 MERETHIS +# Centreon is developped by : Julien Mathis and Romain Le Merlus under +# GPL Licence 2.0. +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation ; either version 2 of the License. +# +# This program is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, see . +# +# Linking this program statically or dynamically with other modules is making a +# combined work based on this program. Thus, the terms and conditions of the GNU +# General Public License cover the whole combination. +# +# As a special exception, the copyright holders of this program give MERETHIS +# permission to link this program with independent modules to produce an executable, +# regardless of the license terms of these independent modules, and to copy and +# distribute the resulting executable under terms of MERETHIS choice, provided that +# MERETHIS also meet, for each linked independent module, the terms and conditions +# of the license of that module. An independent module is a module which is not +# derived from this program. If you modify this program, you may extend this +# exception to your version of the program, but you are not obliged to do so. If you +# do not wish to do so, delete this exception statement from your version. +# +# For more information : contact@centreon.com +# Authors : Quentin Garnier +# +#################################################################################### + +package hardware::server::sun::sfxxk::mode::environment; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; +use centreon::plugins::misc; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "hostname:s" => { name => 'hostname' }, + "remote" => { name => 'remote' }, + "ssh-option:s@" => { name => 'ssh_option' }, + "ssh-path:s" => { name => 'ssh_path' }, + "ssh-command:s" => { name => 'ssh_command', default => 'ssh' }, + "timeout:s" => { name => 'timeout', default => 30 }, + "sudo-pasv" => { name => 'sudo_pasv' }, + "command-pasv:s" => { name => 'command_pasv', default => 'showfailover' }, + "command-path-pasv:s" => { name => 'command_path_pasv', default => '/opt/SUNWSMS/bin' }, + "command-options-pasv:s" => { name => 'command_options_pasv', default => '-r 2>&1' }, + "sudo" => { name => 'sudo' }, + "command:s" => { name => 'command', default => 'showenvironment' }, + "command-path:s" => { name => 'command_path', default => '/opt/SUNWSMS/bin' }, + "command-options:s" => { name => 'command_options', default => '2>&1' }, + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub run { + my ($self, %options) = @_; + my $stdout; + + $stdout = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo_pasv}, + command => $self->{option_results}->{command_pasv}, + command_path => $self->{option_results}->{command_path_pasv}, + command_options => $self->{option_results}->{command_options_pasv}); + if ($stdout !~ /MAIN/i) { + $self->{output}->output_add(severity => 'OK', + short_msg => "System Controller is in spare mode."); + $self->{output}->display(); + $self->{output}->exit(); + } + + $stdout = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + + $self->{output}->output_add(severity => 'OK', + short_msg => "No problems detected."); + if ($stdout =~ /^LOCATION(.*?)\n\n/ims) { + #LOCATION SENSOR VALUE UNIT AGE STATUS + #---------- ------------ ----- ---- ------ ------ + #SCPER at SCPER1 AMB 0 Temp 27 C 30.0 sec HIGH_WARN + #EXB at EX0 -- -- -- -- OFF + #CP at CP1 DMX0 Temp 39 C 29.8 sec OK + my @content = split(/\n/, $1); + shift @content; + foreach (@content) { + next if (/^---/); + if (/(\S+)\s*$/ && $1 !~ /^OK|OFF$/) { + my $sensor_status = $1; + + /^\s*(.*?)\s{2}\s*(.*?)\s{2}\s*/; + my $location = $1; + $location = centreon::plugins::misc::trim($location); + my $sensor = $2; + $sensor = centreon::plugins::misc::trim($sensor); + + $self->{output}->output_add(severity => 'CRITICAL', + short_msg => "Sensor '$location/$sensor' status is '" . $sensor_status . "'"); + } + } + } + + if ($stdout =~ /^FANTRAY(.*?)\n\n/ims) { + #FANTRAY POWER SPEED FAN0 FAN1 FAN2 FAN3 FAN4 FAN5 + #------ ------ ----- ---- ---- ---- ---- ---- ---- + #FT0 ON NORMAL OK OK OK OK OK OK + #FT1 ON NORMAL OK OK OK OK OK OK + my @content = split(/\n/, $1); + shift @content; + foreach my $line (@content) { + + next if ($line =~ /^---/); + my $save_line = $line; + $line =~ s/^\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*//; + $save_line =~ /^\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*/; + my $fantray = $1; + my $fanspeed = $3; + + if ($fanspeed !~ /^NORMAL$/i) { + $self->{output}->output_add(severity => 'CRITICAL', + short_msg => "FanTray '$fantray' speed status is '" . $fanspeed . "'"); + } + + my $fan_num = 0; + while ($line =~ /\s*(.+?)(\s{2}|$)/ig) { + my $status = $1; + $status = centreon::plugins::misc::trim($1); + + next if ($status eq ''); + + if ($status !~ /^OK$/i) { + $self->{output}->output_add(severity => 'CRITICAL', + short_msg => "FanTray '$fantray' fan '$fan_num' status is '" . $status . "'"); + } + $fan_num++; + } + } + } + + if ($stdout =~ /^POWER\s*UNIT(.*?)\n\n/ims) { + #POWER UNIT AC0 AC1 DC0 DC1 FAN0 FAN1 + #----- ---- --- --- --- --- ---- ---- + #PS-A196 at PS0 FAIL FAIL FAIL ON ON OK OK + #PS-A196 at PS1 OK FAIL OK ON ON OK OK + my @content = split(/\n/, $1); + shift @content; + foreach my $line (@content) { + + next if ($line =~ /^---/); + next if ($line !~ /^\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)\s{2}\s*(.*?)(\s{2}|$)/); + my ($power_name, $unit, $ac0, $ac1, $dc0, $dc1, $fan0, $fan1) = ($1, $2, $3, $4, $5, $6, $7, $8); + my $errors = ''; + $errors .= ' [UNIT=' . centreon::plugins::misc::trim($unit) . ']' if ($unit !~ /OK/i); + $errors .= ' [AC0=' . centreon::plugins::misc::trim($ac0) . ']' if ($ac0 !~ /OK/i); + $errors .= ' [AC1=' . centreon::plugins::misc::trim($ac1) . ']' if ($ac1 !~ /OK/i); + $errors .= ' [DC0=' . centreon::plugins::misc::trim($dc0) . ']' if ($dc0 !~ /ON/i); + $errors .= ' [DC1=' . centreon::plugins::misc::trim($dc1) . ']' if ($dc1 !~ /ON/i); + $errors .= ' [DC1=' . centreon::plugins::misc::trim($fan0) . ']' if ($fan0 !~ /OK/i); + $errors .= ' [DC1=' . centreon::plugins::misc::trim($fan1) . ']' if ($fan1 !~ /OK/i); + if ($errors ne '') { + $self->{output}->output_add(severity => 'CRITICAL', + short_msg => "Some errors on power '$power_name':" . $errors); + } + } + } + + #POWER VALUE UNIT STATUS + #--------- ----- ---- ------ + #PS-A196 at PS0 + # Current0 0.00 A N/A + # Current1 0.00 A N/A + # 48VDC 0.20 V N/A + # Power 0.00 W N/A + #PS-A196 at PS1 + # Current0 0.00 A N/A + # Current1 14.00 A N/A + # 48VDC 49.60 V N/A + # Power 694.40 W N/A + #Total Power 2427.44 W N/A + # + # Not managed. Dont know if there is a status??? + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check Sun 'sfxxk' environment. + +=over 8 + +=item B<--remote> + +Execute command remotely in 'ssh'. + +=item B<--hostname> + +Hostname to query (need --remote). + +=item B<--ssh-option> + +Specify multiple options like the user (example: --ssh-option='-l=centreon-engine" --ssh-option='-p=52"). + +=item B<--ssh-path> + +Specify ssh command path (default: none) + +=item B<--ssh-command> + +Specify ssh command (default: 'ssh'). Useful to use 'plink'. + +=item B<--timeout> + +Timeout in seconds for the command (Default: 30). + +=item B<--sudo-pasv> + +Use 'sudo' to execute the command pasv. + +=item B<--command-pasv> + +Command to know if system controller is 'active' (Default: 'showfailover'). + +=item B<--command-path-pasv> + +Command pasv path (Default: '/opt/SUNWSMS/bin'). + +=item B<--command-options-pasv> + +Command pasv options (Default: '-r 2>&1'). + +=item B<--sudo> + +Use 'sudo' to execute the command. + +=item B<--command> + +Command to get information (Default: 'showenvironment'). +Can be changed if you have output in a file. + +=item B<--command-path> + +Command path (Default: '/opt/SUNWSMS/bin'). + +=item B<--command-options> + +Command options (Default: '2>&1'). + +=back + +=cut diff --git a/hardware/server/sun/sfxxk/mode/failover.pm b/hardware/server/sun/sfxxk/mode/failover.pm new file mode 100644 index 000000000..7b6f6f4d1 --- /dev/null +++ b/hardware/server/sun/sfxxk/mode/failover.pm @@ -0,0 +1,185 @@ +################################################################################ +# Copyright 2005-2013 MERETHIS +# Centreon is developped by : Julien Mathis and Romain Le Merlus under +# GPL Licence 2.0. +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation ; either version 2 of the License. +# +# This program is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, see . +# +# Linking this program statically or dynamically with other modules is making a +# combined work based on this program. Thus, the terms and conditions of the GNU +# General Public License cover the whole combination. +# +# As a special exception, the copyright holders of this program give MERETHIS +# permission to link this program with independent modules to produce an executable, +# regardless of the license terms of these independent modules, and to copy and +# distribute the resulting executable under terms of MERETHIS choice, provided that +# MERETHIS also meet, for each linked independent module, the terms and conditions +# of the license of that module. An independent module is a module which is not +# derived from this program. If you modify this program, you may extend this +# exception to your version of the program, but you are not obliged to do so. If you +# do not wish to do so, delete this exception statement from your version. +# +# For more information : contact@centreon.com +# Authors : Quentin Garnier +# +#################################################################################### + +package hardware::server::sun::sfxxk::mode::failover; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; +use centreon::plugins::misc; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "hostname:s" => { name => 'hostname' }, + "remote" => { name => 'remote' }, + "ssh-option:s@" => { name => 'ssh_option' }, + "ssh-path:s" => { name => 'ssh_path' }, + "ssh-command:s" => { name => 'ssh_command', default => 'ssh' }, + "timeout:s" => { name => 'timeout', default => 30 }, + "sudo-pasv" => { name => 'sudo_pasv' }, + "command-pasv:s" => { name => 'command_pasv', default => 'showfailover' }, + "command-path-pasv:s" => { name => 'command_path_pasv', default => '/opt/SUNWSMS/bin' }, + "command-options-pasv:s" => { name => 'command_options_pasv', default => '-r 2>&1' }, + "sudo" => { name => 'sudo' }, + "command:s" => { name => 'command', default => 'showfailover' }, + "command-path:s" => { name => 'command_path', default => '/opt/SUNWSMS/bin' }, + "command-options:s" => { name => 'command_options', default => '2>&1' }, + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub run { + my ($self, %options) = @_; + my $stdout; + + $stdout = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo_pasv}, + command => $self->{option_results}->{command_pasv}, + command_path => $self->{option_results}->{command_path_pasv}, + command_options => $self->{option_results}->{command_options_pasv}); + if ($stdout !~ /MAIN/i) { + $self->{output}->output_add(severity => 'OK', + short_msg => "System Controller is in spare mode."); + $self->{output}->display(); + $self->{output}->exit(); + } + + $stdout = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + + # 'ACTIVITING' is like 'ACTIVE' for us. + $self->{output}->output_add(severity => 'OK', + short_msg => "System Controller Failover Status is ACTIVE."); + if ($stdout =~ /^SC Failover Status:(.*?)($|\n)/ims) { + my $failover_status = $1; + $failover_status = centreon::plugins::misc::trim($failover_status); + # Can be FAILED or DISABLED + if ($failover_status !~ /ACTIVE/i) { + $self->{output}->output_add(severity => 'CRITICAL', + short_msg => "System Controller Failover Status is " . $failover_status . "."); + } + } + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check Sun 'sfxxk' system controller failover status. + +=over 8 + +=item B<--remote> + +Execute command remotely in 'ssh'. + +=item B<--hostname> + +Hostname to query (need --remote). + +=item B<--ssh-option> + +Specify multiple options like the user (example: --ssh-option='-l=centreon-engine" --ssh-option='-p=52"). + +=item B<--ssh-path> + +Specify ssh command path (default: none) + +=item B<--ssh-command> + +Specify ssh command (default: 'ssh'). Useful to use 'plink'. + +=item B<--timeout> + +Timeout in seconds for the command (Default: 30). + +=item B<--sudo-pasv> + +Use 'sudo' to execute the command pasv. + +=item B<--command-pasv> + +Command to know if system controller is 'active' (Default: 'showfailover'). + +=item B<--command-path-pasv> + +Command pasv path (Default: '/opt/SUNWSMS/bin'). + +=item B<--command-options-pasv> + +Command pasv options (Default: '-r 2>&1'). + +=item B<--sudo> + +Use 'sudo' to execute the command. + +=item B<--command> + +Command to get information (Default: 'showfailover'). +Can be changed if you have output in a file. + +=item B<--command-path> + +Command path (Default: '/opt/SUNWSMS/bin'). + +=item B<--command-options> + +Command options (Default: '2>&1'). + +=back + +=cut diff --git a/hardware/server/sun/sfxxk/plugin.pm b/hardware/server/sun/sfxxk/plugin.pm new file mode 100644 index 000000000..98ede20ec --- /dev/null +++ b/hardware/server/sun/sfxxk/plugin.pm @@ -0,0 +1,66 @@ +################################################################################ +# Copyright 2005-2013 MERETHIS +# Centreon is developped by : Julien Mathis and Romain Le Merlus under +# GPL Licence 2.0. +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation ; either version 2 of the License. +# +# This program is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, see . +# +# Linking this program statically or dynamically with other modules is making a +# combined work based on this program. Thus, the terms and conditions of the GNU +# General Public License cover the whole combination. +# +# As a special exception, the copyright holders of this program give MERETHIS +# permission to link this program with independent modules to produce an executable, +# regardless of the license terms of these independent modules, and to copy and +# distribute the resulting executable under terms of MERETHIS choice, provided that +# MERETHIS also meet, for each linked independent module, the terms and conditions +# of the license of that module. An independent module is a module which is not +# derived from this program. If you modify this program, you may extend this +# exception to your version of the program, but you are not obliged to do so. If you +# do not wish to do so, delete this exception statement from your version. +# +# For more information : contact@centreon.com +# Authors : Quentin Garnier +# +#################################################################################### + +package hardware::server::sun::sfxxk::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_simple); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + # $options->{options} = options object + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'environment' => 'hardware::server::sun::sfxxk::mode::environment', + 'boards' => 'hardware::server::sun::sfxxk::mode::boards', + 'failover' => 'hardware::server::sun::sfxxk::mode::failover', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check sfxxk hardware (sf15k,...) through 'sc'. + +=cut