fix netbackup long job
This commit is contained in:
parent
97d4414b1d
commit
d3f074d682
|
@ -32,11 +32,11 @@ sub custom_status_threshold {
|
|||
my ($self, %options) = @_;
|
||||
my $status = 'ok';
|
||||
my $message;
|
||||
|
||||
|
||||
eval {
|
||||
local $SIG{__WARN__} = sub { $message = $_[0]; };
|
||||
local $SIG{__DIE__} = sub { $message = $_[0]; };
|
||||
|
||||
|
||||
# To exclude some OK
|
||||
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}") {
|
||||
|
@ -58,14 +58,13 @@ sub custom_status_threshold {
|
|||
|
||||
sub custom_status_output {
|
||||
my ($self, %options) = @_;
|
||||
my $msg = 'Status : ' . $self->{result_values}->{status};
|
||||
|
||||
return $msg;
|
||||
return 'Status : ' . $self->{result_values}->{status};
|
||||
}
|
||||
|
||||
sub custom_status_calc {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
||||
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||
$self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'};
|
||||
|
@ -75,20 +74,19 @@ sub custom_status_calc {
|
|||
|
||||
sub custom_long_output {
|
||||
my ($self, %options) = @_;
|
||||
my $msg = 'Started Since: ' . centreon::plugins::misc::change_seconds(value => $self->{result_values}->{elapsed});
|
||||
|
||||
return $msg;
|
||||
|
||||
return 'Started Since: ' . centreon::plugins::misc::change_seconds(value => $self->{result_values}->{elapsed});
|
||||
}
|
||||
|
||||
sub custom_long_calc {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
||||
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||
$self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'};
|
||||
$self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'};
|
||||
$self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'};
|
||||
|
||||
|
||||
return -11 if ($self->{result_values}->{state} !~ /queued|active/);
|
||||
|
||||
return 0;
|
||||
|
@ -98,7 +96,7 @@ sub custom_frozen_threshold {
|
|||
my ($self, %options) = @_;
|
||||
my $status = 'ok';
|
||||
my $message;
|
||||
|
||||
|
||||
eval {
|
||||
local $SIG{__WARN__} = sub { $message = $_[0]; };
|
||||
local $SIG{__DIE__} = sub { $message = $_[0]; };
|
||||
|
@ -131,7 +129,7 @@ sub custom_frozen_output {
|
|||
|
||||
sub custom_frozen_calc {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
||||
$self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'};
|
||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
||||
$self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'};
|
||||
|
@ -147,7 +145,7 @@ sub custom_frozen_calc {
|
|||
|
||||
sub set_counters {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
||||
$self->{maps_counters_type} = [
|
||||
{ name => 'global', type => 0 },
|
||||
{ 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 } } ]
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
$self->{maps_counters}->{global} = [
|
||||
{ label => 'total', set => {
|
||||
key_values => [ { name => 'total' } ],
|
||||
|
@ -166,7 +164,7 @@ sub set_counters {
|
|||
}
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
$self->{maps_counters}->{job} = [
|
||||
{ label => 'status', threshold => 0, set => {
|
||||
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_threshold_check => $self->can('custom_frozen_threshold'),
|
||||
}
|
||||
},
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -202,7 +200,7 @@ sub new {
|
|||
my ($class, %options) = @_;
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1);
|
||||
bless $self, $class;
|
||||
|
||||
|
||||
$options{options}->add_options(arguments => {
|
||||
'hostname:s' => { name => 'hostname' },
|
||||
'remote' => { name => 'remote' },
|
||||
|
@ -243,13 +241,13 @@ sub check_options {
|
|||
|
||||
sub policy_long_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
||||
return "Checking policy '" . $options{instance_value}->{display} . "'";
|
||||
}
|
||||
|
||||
sub prefix_policy_output {
|
||||
my ($self, %options) = @_;
|
||||
|
||||
|
||||
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}->{job_end_time}) ? md5_hex($self->{option_results}->{job_end_time}) : md5_hex('all'));
|
||||
|
||||
my ($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});
|
||||
|
||||
my ($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}
|
||||
);
|
||||
|
||||
if (defined($self->{option_results}->{exec_only})) {
|
||||
$self->{output}->output_add(severity => 'OK',
|
||||
short_msg => $stdout);
|
||||
$self->{output}->output_add(
|
||||
severity => 'OK',
|
||||
short_msg => $stdout
|
||||
);
|
||||
$self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1);
|
||||
$self->{output}->exit();
|
||||
}
|
||||
|
@ -308,9 +310,11 @@ sub manage_selection {
|
|||
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) =
|
||||
($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_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 '' &&
|
||||
$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);
|
||||
|
@ -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);
|
||||
next;
|
||||
}
|
||||
|
||||
|
||||
$self->{policy}->{$job_pname} = { job => {}, display => $job_pname } if (!defined($self->{policy}->{$job_pname}));
|
||||
my $elapsed_time = $current_time - $job_start_time;
|
||||
$self->{policy}->{$job_pname}->{job}->{$job_id} = {
|
||||
|
|
Loading…
Reference in New Issue