(plugin) database::oracle - add timeout option for sqlpluscmd (#3462)

This commit is contained in:
qgarnier 2022-02-04 18:00:48 +01:00 committed by GitHub
parent 70f02450c8
commit 64a062e48c
1 changed files with 44 additions and 37 deletions

View File

@ -56,7 +56,8 @@ sub new {
'local-connexion' => { name => 'local_connexion', default => 0 },
'sysdba' => { name => 'sysdba', default => 0 },
'sql-errors-exit:s' => { name => 'sql_errors_exit', default => 'unknown' },
'tempdir:s' => { name => 'tempdir', default => '/tmp' }
'tempdir:s' => { name => 'tempdir', default => '/tmp' },
'timeout:s' => { name => 'timeout' }
}
);
}
@ -110,6 +111,12 @@ sub check_options {
$self->{sqlplus_cmd} = $self->{option_results}->{sqlplus_cmd};
$self->{container} = defined($self->{option_results}->{container}[0]) ? $self->{option_results}->{container}[0] : undef;
$self->{timeout} = 30;
if (defined($self->{option_results}->{timeout}) && $self->{option_results}->{timeout} =~ /^\d+$/ &&
$self->{option_results}->{timeout} > 0) {
$self->{timeout} = $self->{option_results}->{timeout};
}
$self->{output}->output_add(long_msg => "*** DEBUG MODE****\n", debug => 1);
$self->{output}->output_add(long_msg => Data::Dumper::Dumper($self->{option_results}), debug => 1);
@ -204,11 +211,9 @@ sub is_version_minimum {
sub get_id {
my ($self, %options) = @_;
my $msg = $self->{sid};
return $msg;
return $self->{sid};
}
sub get_unique_id4save {
my ($self, %options) = @_;
@ -241,7 +246,7 @@ exit;";
my ($lerror, $stdout, $exit_code) = centreon::plugins::misc::backtick(
command => $self->{sqlplus_cmd},
arguments => [@{$self->{args}}, '@', $tempfile],
timeout => 30,
timeout => $self->{timeout},
wait_exit => 1,
redirect_stderr => 1
);
@ -253,8 +258,10 @@ exit;";
if ($exit_code <= -1000) {
if ($exit_code == -1000) {
$self->{output}->output_add(severity => 'UNKNOWN',
short_msg => $stdout);
$self->{output}->output_add(
severity => 'UNKNOWN',
short_msg => $stdout
);
}
$self->{output}->display();
$self->{output}->exit();