fix netbackup long job
This commit is contained in:
parent
5c73cf0ab7
commit
46ac478d75
|
@ -32,11 +32,11 @@ sub custom_status_threshold {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
my $status = 'ok';
|
my $status = 'ok';
|
||||||
my $message;
|
my $message;
|
||||||
|
|
||||||
eval {
|
eval {
|
||||||
local $SIG{__WARN__} = sub { $message = $_[0]; };
|
local $SIG{__WARN__} = sub { $message = $_[0]; };
|
||||||
local $SIG{__DIE__} = sub { $message = $_[0]; };
|
local $SIG{__DIE__} = sub { $message = $_[0]; };
|
||||||
|
|
||||||
# To exclude some OK
|
# To exclude some OK
|
||||||
if (defined($self->{instance_mode}->{option_results}->{ok_status}) && $self->{instance_mode}->{option_results}->{ok_status} ne '' &&
|
if (defined($self->{instance_mode}->{option_results}->{ok_status}) && $self->{instance_mode}->{option_results}->{ok_status} ne '' &&
|
||||||
eval "$self->{instance_mode}->{option_results}->{ok_status}") {
|
eval "$self->{instance_mode}->{option_results}->{ok_status}") {
|
||||||
|
@ -58,14 +58,13 @@ sub custom_status_threshold {
|
||||||
|
|
||||||
sub custom_status_output {
|
sub custom_status_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
my $msg = 'Status : ' . $self->{result_values}->{status};
|
|
||||||
|
|
||||||
return $msg;
|
return 'Status : ' . $self->{result_values}->{status};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_status_calc {
|
sub custom_status_calc {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
||||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||||
$self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'};
|
$self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'};
|
||||||
|
@ -75,20 +74,19 @@ sub custom_status_calc {
|
||||||
|
|
||||||
sub custom_long_output {
|
sub custom_long_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
my $msg = 'Started Since: ' . centreon::plugins::misc::change_seconds(value => $self->{result_values}->{elapsed});
|
|
||||||
|
return 'Started Since: ' . centreon::plugins::misc::change_seconds(value => $self->{result_values}->{elapsed});
|
||||||
return $msg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_long_calc {
|
sub custom_long_calc {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
||||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||||
$self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'};
|
$self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'};
|
||||||
$self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'};
|
$self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'};
|
||||||
$self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'};
|
$self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'};
|
||||||
|
|
||||||
return -11 if ($self->{result_values}->{state} !~ /queued|active/);
|
return -11 if ($self->{result_values}->{state} !~ /queued|active/);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -98,7 +96,7 @@ sub custom_frozen_threshold {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
my $status = 'ok';
|
my $status = 'ok';
|
||||||
my $message;
|
my $message;
|
||||||
|
|
||||||
eval {
|
eval {
|
||||||
local $SIG{__WARN__} = sub { $message = $_[0]; };
|
local $SIG{__WARN__} = sub { $message = $_[0]; };
|
||||||
local $SIG{__DIE__} = sub { $message = $_[0]; };
|
local $SIG{__DIE__} = sub { $message = $_[0]; };
|
||||||
|
@ -131,7 +129,7 @@ sub custom_frozen_output {
|
||||||
|
|
||||||
sub custom_frozen_calc {
|
sub custom_frozen_calc {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
||||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||||
$self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'};
|
$self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'};
|
||||||
|
@ -147,7 +145,7 @@ sub custom_frozen_calc {
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{maps_counters_type} = [
|
$self->{maps_counters_type} = [
|
||||||
{ name => 'global', type => 0 },
|
{ name => 'global', type => 0 },
|
||||||
{ name => 'policy', type => 2, cb_prefix_output => 'prefix_policy_output', cb_long_output => 'policy_long_output',
|
{ name => 'policy', type => 2, cb_prefix_output => 'prefix_policy_output', cb_long_output => 'policy_long_output',
|
||||||
|
@ -155,7 +153,7 @@ sub set_counters {
|
||||||
group => [ { name => 'job', cb_prefix_output => 'prefix_job_output', skipped_code => { -11 => 1 } } ]
|
group => [ { name => 'job', cb_prefix_output => 'prefix_job_output', skipped_code => { -11 => 1 } } ]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
$self->{maps_counters}->{global} = [
|
$self->{maps_counters}->{global} = [
|
||||||
{ label => 'total', set => {
|
{ label => 'total', set => {
|
||||||
key_values => [ { name => 'total' } ],
|
key_values => [ { name => 'total' } ],
|
||||||
|
@ -166,7 +164,7 @@ sub set_counters {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
$self->{maps_counters}->{job} = [
|
$self->{maps_counters}->{job} = [
|
||||||
{ label => 'status', threshold => 0, set => {
|
{ label => 'status', threshold => 0, set => {
|
||||||
key_values => [ { name => 'status' }, { name => 'display' }, { name => 'type' }, { name => 'state' } ],
|
key_values => [ { name => 'status' }, { name => 'display' }, { name => 'type' }, { name => 'state' } ],
|
||||||
|
@ -194,7 +192,7 @@ sub set_counters {
|
||||||
closure_custom_perfdata => sub { return 0; },
|
closure_custom_perfdata => sub { return 0; },
|
||||||
closure_custom_threshold_check => $self->can('custom_frozen_threshold'),
|
closure_custom_threshold_check => $self->can('custom_frozen_threshold'),
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,7 +200,7 @@ sub new {
|
||||||
my ($class, %options) = @_;
|
my ($class, %options) = @_;
|
||||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1);
|
my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1);
|
||||||
bless $self, $class;
|
bless $self, $class;
|
||||||
|
|
||||||
$options{options}->add_options(arguments => {
|
$options{options}->add_options(arguments => {
|
||||||
'hostname:s' => { name => 'hostname' },
|
'hostname:s' => { name => 'hostname' },
|
||||||
'remote' => { name => 'remote' },
|
'remote' => { name => 'remote' },
|
||||||
|
@ -243,13 +241,13 @@ sub check_options {
|
||||||
|
|
||||||
sub policy_long_output {
|
sub policy_long_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return "Checking policy '" . $options{instance_value}->{display} . "'";
|
return "Checking policy '" . $options{instance_value}->{display} . "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub prefix_policy_output {
|
sub prefix_policy_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return "Policy '" . $options{instance_value}->{display} . "' ";
|
return "Policy '" . $options{instance_value}->{display} . "' ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -287,16 +285,20 @@ sub manage_selection {
|
||||||
(defined($self->{option_results}->{filter_start_time}) ? md5_hex($self->{option_results}->{filter_start_time}) : md5_hex('all')) . '_' .
|
(defined($self->{option_results}->{filter_start_time}) ? md5_hex($self->{option_results}->{filter_start_time}) : md5_hex('all')) . '_' .
|
||||||
(defined($self->{option_results}->{job_end_time}) ? md5_hex($self->{option_results}->{job_end_time}) : md5_hex('all'));
|
(defined($self->{option_results}->{job_end_time}) ? md5_hex($self->{option_results}->{job_end_time}) : md5_hex('all'));
|
||||||
|
|
||||||
my ($stdout) = centreon::plugins::misc::execute(output => $self->{output},
|
my ($stdout) = centreon::plugins::misc::execute(
|
||||||
options => $self->{option_results},
|
output => $self->{output},
|
||||||
sudo => $self->{option_results}->{sudo},
|
options => $self->{option_results},
|
||||||
command => $self->{option_results}->{command},
|
sudo => $self->{option_results}->{sudo},
|
||||||
command_path => $self->{option_results}->{command_path},
|
command => $self->{option_results}->{command},
|
||||||
command_options => $self->{option_results}->{command_options});
|
command_path => $self->{option_results}->{command_path},
|
||||||
|
command_options => $self->{option_results}->{command_options}
|
||||||
|
);
|
||||||
|
|
||||||
if (defined($self->{option_results}->{exec_only})) {
|
if (defined($self->{option_results}->{exec_only})) {
|
||||||
$self->{output}->output_add(severity => 'OK',
|
$self->{output}->output_add(
|
||||||
short_msg => $stdout);
|
severity => 'OK',
|
||||||
|
short_msg => $stdout
|
||||||
|
);
|
||||||
$self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1);
|
$self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1);
|
||||||
$self->{output}->exit();
|
$self->{output}->exit();
|
||||||
}
|
}
|
||||||
|
@ -308,9 +310,11 @@ sub manage_selection {
|
||||||
my @values = split /,/, $line;
|
my @values = split /,/, $line;
|
||||||
my ($job_id, $job_type, $job_state, $job_status, $job_pname, $job_schedule, $job_start_time, $job_end_time, $job_kb, $job_parentid) =
|
my ($job_id, $job_type, $job_state, $job_status, $job_pname, $job_schedule, $job_start_time, $job_end_time, $job_kb, $job_parentid) =
|
||||||
($values[0], $values[1], $values[2], $values[3], $values[4], $values[5], $values[8], $values[10], $values[14], $values[33]);
|
($values[0], $values[1], $values[2], $values[3], $values[4], $values[5], $values[8], $values[10], $values[14], $values[33]);
|
||||||
|
|
||||||
$job_pname = defined($job_pname) && $job_pname ne '' ? $job_pname : 'unknown';
|
$job_pname = defined($job_pname) && $job_pname ne '' ? $job_pname : 'unknown';
|
||||||
$job_status = defined($job_status) && $job_status =~ /[0-9]/ ? $job_status : -1;
|
$job_status = defined($job_status) && $job_status =~ /[0-9]/ ? $job_status : -1;
|
||||||
|
# when the job is running, end_time = 000000
|
||||||
|
$job_end_time = undef if (defined($job_end_time) && int($job_end_time) == 0);
|
||||||
if (defined($self->{option_results}->{filter_policy_name}) && $self->{option_results}->{filter_policy_name} ne '' &&
|
if (defined($self->{option_results}->{filter_policy_name}) && $self->{option_results}->{filter_policy_name} ne '' &&
|
||||||
$job_pname !~ /$self->{option_results}->{filter_policy_name}/) {
|
$job_pname !~ /$self->{option_results}->{filter_policy_name}/) {
|
||||||
$self->{output}->output_add(long_msg => "skipping job '" . $job_pname . "/" . $job_id . "': no matching filter.", debug => 1);
|
$self->{output}->output_add(long_msg => "skipping job '" . $job_pname . "/" . $job_id . "': no matching filter.", debug => 1);
|
||||||
|
@ -331,7 +335,7 @@ sub manage_selection {
|
||||||
$self->{output}->output_add(long_msg => "skipping job '" . $job_pname . "/" . $job_id . "': start time too old.", debug => 1);
|
$self->{output}->output_add(long_msg => "skipping job '" . $job_pname . "/" . $job_id . "': start time too old.", debug => 1);
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->{policy}->{$job_pname} = { job => {}, display => $job_pname } if (!defined($self->{policy}->{$job_pname}));
|
$self->{policy}->{$job_pname} = { job => {}, display => $job_pname } if (!defined($self->{policy}->{$job_pname}));
|
||||||
my $elapsed_time = $current_time - $job_start_time;
|
my $elapsed_time = $current_time - $job_start_time;
|
||||||
$self->{policy}->{$job_pname}->{job}->{$job_id} = {
|
$self->{policy}->{$job_pname}->{job}->{$job_id} = {
|
||||||
|
|
Loading…
Reference in New Issue