mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-26 23:24:27 +02:00
(plugin) apps::backup::veeam::local - add exclude filters + scheduled parameter (#3860)
This commit is contained in:
parent
0e00d1a739
commit
c0fd53f947
@ -80,7 +80,8 @@ sub set_counters {
|
||||
{ label => 'status', threshold => 0, set => {
|
||||
key_values => [
|
||||
{ name => 'status' }, { name => 'display' },
|
||||
{ name => 'type' }, { name => 'is_running' }, { name => 'is_continuous' }
|
||||
{ name => 'type' }, { name => 'is_running' },
|
||||
{ name => 'is_continuous' }, { name => 'scheduled' }
|
||||
],
|
||||
closure_custom_output => $self->can('custom_status_output'),
|
||||
closure_custom_perfdata => sub { return 0; },
|
||||
@ -116,6 +117,7 @@ sub new {
|
||||
'ps-exec-only' => { name => 'ps_exec_only' },
|
||||
'ps-display' => { name => 'ps_display' },
|
||||
'filter-name:s' => { name => 'filter_name' },
|
||||
'exclude-name:s' => { name => 'exclude_name' },
|
||||
'filter-type:s' => { name => 'filter_type' },
|
||||
'filter-end-time:s' => { name => 'filter_end_time', default => 86400 },
|
||||
'filter-start-time:s' => { name => 'filter_start_time' },
|
||||
@ -185,9 +187,9 @@ sub manage_selection {
|
||||
}
|
||||
|
||||
#[
|
||||
# { "name": "backup 1", "type": 0, "isRunning": false, "isContinuous": 0, "sessions": { "result": 0, "creationTimeUTC": 1512875246.2, "endTimeUTC": 1512883615.377 } },
|
||||
# { "name": "backup 2", "type": 0, "isRunning": false, "isContinuous": 0, "sessions": { "result": -10, "creationTimeUTC": "", "endTimeUTC": "" } },
|
||||
# { "name": "backup 3", "type": 1, "isRunning": true, "isContinuous": 0, "sessions": { "result": 0, "creationTimeUTC": 1513060425.027, "endTimeUTC": -2208992400 } }
|
||||
# { "name": "backup 1", "type": 0, "isRunning": false, "scheduled": true, "isContinuous": 0, "sessions": { "result": 0, "creationTimeUTC": 1512875246.2, "endTimeUTC": 1512883615.377 } },
|
||||
# { "name": "backup 2", "type": 0, "isRunning": false, "scheduled": true, "isContinuous": 0, "sessions": { "result": -10, "creationTimeUTC": "", "endTimeUTC": "" } },
|
||||
# { "name": "backup 3", "type": 1, "isRunning": true, "scheduled": true, "isContinuous": 0, "sessions": { "result": 0, "creationTimeUTC": 1513060425.027, "endTimeUTC": -2208992400 } }
|
||||
#]
|
||||
|
||||
$self->{global} = { total => 0 };
|
||||
@ -203,12 +205,12 @@ sub manage_selection {
|
||||
$session->{creationTimeUTC} =~ s/,/\./;
|
||||
$session->{endTimeUTC} =~ s/,/\./;
|
||||
|
||||
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$job->{name} !~ /$self->{option_results}->{filter_name}/);
|
||||
next if (defined($self->{option_results}->{exclude_name}) && $self->{option_results}->{exclude_name} ne '' &&
|
||||
$job->{name} =~ /$self->{option_results}->{exclude_name}/);
|
||||
|
||||
my $job_type = defined($job_type->{ $job->{type} }) ? $job_type->{ $job->{type} } : 'unknown';
|
||||
if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$job->{name} !~ /$self->{option_results}->{filter_name}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping job '" . $job->{name} . "': no matching filter.", debug => 1);
|
||||
next;
|
||||
}
|
||||
if (defined($self->{option_results}->{filter_type}) && $self->{option_results}->{filter_type} ne '' &&
|
||||
$job_type !~ /$self->{option_results}->{filter_type}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping job '" . $job->{name} . "': no matching filter type.", debug => 1);
|
||||
@ -235,6 +237,7 @@ sub manage_selection {
|
||||
type => $job_type,
|
||||
is_continuous => $job->{isContinuous},
|
||||
is_running => $job->{isRunning} =~ /True|1/ ? 1 : ($session->{creationTimeUTC} !~ /[0-9]/ ? 2 : 0),
|
||||
scheduled => $job->{scheduled} =~ /True|1/i ? 1 : 0,
|
||||
status => defined($job_result->{ $session->{result} }) && $job_result->{ $session->{result} } ne '' ?
|
||||
$job_result->{ $session->{result} } : '-'
|
||||
};
|
||||
@ -285,6 +288,10 @@ Print powershell output.
|
||||
|
||||
Filter job name (can be a regexp).
|
||||
|
||||
=item B<--exclude-name>
|
||||
|
||||
Exclude job name (regexp can be used).
|
||||
|
||||
=item B<--filter-type>
|
||||
|
||||
Filter job type (can be a regexp).
|
||||
@ -299,27 +306,27 @@ Filter job with end time greater than current time less value in seconds (Defaul
|
||||
|
||||
=item B<--ok-status>
|
||||
|
||||
Set ok threshold for status (Default: '')
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{is_running}.
|
||||
Set ok threshold for status.
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{is_running}, %{scheduled}.
|
||||
|
||||
=item B<--warning-status>
|
||||
|
||||
Set warning threshold for status (Default: '')
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{is_running}.
|
||||
Set warning threshold for status.
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{is_running}, %{scheduled}.
|
||||
|
||||
=item B<--critical-status>
|
||||
|
||||
Set critical threshold for status (Default: '%{is_running} == 0 and not %{status} =~ /Success/i').
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{is_running}.
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{is_running}, %{scheduled}.
|
||||
|
||||
=item B<--warning-long>
|
||||
|
||||
Set warning threshold for long jobs (Default: none)
|
||||
Set warning threshold for long jobs.
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{elapsed}.
|
||||
|
||||
=item B<--critical-long>
|
||||
|
||||
Set critical threshold for long jobs (Default: none).
|
||||
Set critical threshold for long jobs.
|
||||
Can used special variables like: %{display}, %{status}, %{type}, %{elapsed}.
|
||||
|
||||
=item B<--warning-total>
|
||||
|
@ -143,6 +143,7 @@ sub new {
|
||||
'ps-exec-only' => { name => 'ps_exec_only' },
|
||||
'ps-display' => { name => 'ps_display' },
|
||||
'filter-name:s' => { name => 'filter_name' },
|
||||
'exclude-name:s' => { name => 'exclude_name' },
|
||||
'filter-type:s' => { name => 'filter_type' }
|
||||
});
|
||||
|
||||
@ -198,11 +199,11 @@ sub manage_selection {
|
||||
|
||||
$self->{repositories} = {};
|
||||
foreach my $repo (@$decoded) {
|
||||
if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$repo->{name} !~ /$self->{option_results}->{filter_name}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping repository '$repo->{name}'.", debug => 1);
|
||||
next;
|
||||
}
|
||||
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$repo->{name} !~ /$self->{option_results}->{filter_name}/);
|
||||
next if (defined($self->{option_results}->{exclude_name}) && $self->{option_results}->{exclude_name} ne '' &&
|
||||
$repo->{name} =~ /$self->{option_results}->{exclude_name}/);
|
||||
|
||||
if (defined($self->{option_results}->{filter_type}) && $self->{option_results}->{filter_type} ne '' &&
|
||||
$repo->{type} !~ /$self->{option_results}->{filter_type}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping repository '$repo->{name}'.", debug => 1);
|
||||
@ -273,6 +274,10 @@ Print powershell output.
|
||||
|
||||
Filter repositories by name (can be a regexp).
|
||||
|
||||
=item B<--exclude-name>
|
||||
|
||||
Exclude repositories by name (regexp can be used).
|
||||
|
||||
=item B<--filter-type>
|
||||
|
||||
Filter repositories by type (can be a regexp).
|
||||
|
@ -95,6 +95,7 @@ sub new {
|
||||
'ps-exec-only' => { name => 'ps_exec_only' },
|
||||
'ps-display' => { name => 'ps_display' },
|
||||
'filter-name:s' => { name => 'filter_name' },
|
||||
'exclude-name:s' => { name => 'exclude_name' },
|
||||
'filter-type:s' => { name => 'filter_type' }
|
||||
});
|
||||
|
||||
@ -151,11 +152,11 @@ sub manage_selection {
|
||||
$self->{global} = { total => 0 };
|
||||
$self->{job} = {};
|
||||
foreach my $job (@$decoded) {
|
||||
if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$job->{name} !~ /$self->{option_results}->{filter_name}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping job '" . $job->{name} . "': no matching filter.", debug => 1);
|
||||
next;
|
||||
}
|
||||
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$job->{name} !~ /$self->{option_results}->{filter_name}/);
|
||||
next if (defined($self->{option_results}->{exclude_name}) && $self->{option_results}->{exclude_name} ne '' &&
|
||||
$job->{name} =~ /$self->{option_results}->{exclude_name}/);
|
||||
|
||||
if (defined($self->{option_results}->{filter_type}) && $self->{option_results}->{filter_type} ne '' &&
|
||||
$job->{type} !~ /$self->{option_results}->{filter_type}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping job '" . $job->{name} . "': no matching filter type.", debug => 1);
|
||||
@ -226,6 +227,10 @@ Print powershell output.
|
||||
|
||||
Filter job name (can be a regexp).
|
||||
|
||||
=item B<--exclude-name>
|
||||
|
||||
Exclude job name (regexp can be used).
|
||||
|
||||
=item B<--filter-type>
|
||||
|
||||
Filter job type (can be a regexp).
|
||||
|
@ -127,6 +127,7 @@ sub new {
|
||||
'ps-exec-only' => { name => 'ps_exec_only' },
|
||||
'ps-display' => { name => 'ps_display' },
|
||||
'filter-name:s' => { name => 'filter_name' },
|
||||
'exclude-name:s' => { name => 'exclude_name' },
|
||||
'filter-type:s' => { name => 'filter_type' }
|
||||
});
|
||||
|
||||
@ -188,11 +189,11 @@ sub manage_selection {
|
||||
$job->{creationTimeUTC} =~ s/,/\./;
|
||||
$job->{endTimeUTC} =~ s/,/\./;
|
||||
|
||||
if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$job->{name} !~ /$self->{option_results}->{filter_name}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping job '" . $job->{name} . "': no matching filter.", debug => 1);
|
||||
next;
|
||||
}
|
||||
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' &&
|
||||
$job->{name} !~ /$self->{option_results}->{filter_name}/);
|
||||
next if (defined($self->{option_results}->{exclude_name}) && $self->{option_results}->{exclude_name} ne '' &&
|
||||
$job->{name} =~ /$self->{option_results}->{exclude_name}/);
|
||||
|
||||
if (defined($self->{option_results}->{filter_type}) && $self->{option_results}->{filter_type} ne '' &&
|
||||
$job->{type} !~ /$self->{option_results}->{filter_type}/) {
|
||||
$self->{output}->output_add(long_msg => "skipping job '" . $job->{name} . "': no matching filter type.", debug => 1);
|
||||
@ -262,6 +263,10 @@ Print powershell output.
|
||||
|
||||
Filter job name (can be a regexp).
|
||||
|
||||
=item B<--exclude-name>
|
||||
|
||||
Exclude job name (regexp can be used).
|
||||
|
||||
=item B<--filter-type>
|
||||
|
||||
Filter job type (can be a regexp).
|
||||
|
@ -71,6 +71,7 @@ Try {
|
||||
$item.name = $_.Name
|
||||
$item.type = $_.JobType.value__
|
||||
$item.isRunning = $_.isRunning
|
||||
$item.scheduled = $_.IsScheduleEnabled
|
||||
$item.isContinuous = 0
|
||||
|
||||
if ($_.isContinuous -eq $true) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user