add filter-status

This commit is contained in:
garnier-quentin 2019-02-19 14:18:28 +01:00
parent b0f582ea6b
commit 7359ee9015
1 changed files with 23 additions and 10 deletions

View File

@ -75,12 +75,12 @@ sub new {
bless $self, $class; bless $self, $class;
$self->{version} = '1.0'; $self->{version} = '1.0';
$options{options}->add_options(arguments => $options{options}->add_options(arguments => {
{ "filter-status:s" => { name => 'filter_status' },
"unknown-status:s" => { name => 'unknown_status', default => '' }, "unknown-status:s" => { name => 'unknown_status', default => '' },
"warning-status:s" => { name => 'warning_status', default => '%{status} =~ /quiesced/i' }, "warning-status:s" => { name => 'warning_status', default => '%{status} =~ /quiesced/i' },
"critical-status:s" => { name => 'critical_status', default => '%{status} =~ /unknown|brokenOff|uninitialized/i' }, "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /unknown|brokenOff|uninitialized/i' },
}); });
return $self; return $self;
} }
@ -149,12 +149,23 @@ sub manage_selection {
foreach (@{$id_selected}) { foreach (@{$id_selected}) {
my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $_); my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $_);
if (defined($self->{option_results}->{filter_status}) && $self->{option_results}->{filter_status} ne '' &&
$result->{snapmirrorState} !~ /$self->{option_results}->{filter_status}/) {
$self->{output}->output_add(long_msg => "skipping '" . $snmp_result_name->{$oid_snapmirrorSrc . '.' . $_} . "': no matching filter.", debug => 1);
next;
}
$self->{snapmirror}->{$_} = { $self->{snapmirror}->{$_} = {
display => $snmp_result_name->{$oid_snapmirrorSrc . '.' . $_}, display => $snmp_result_name->{$oid_snapmirrorSrc . '.' . $_},
status => $result->{snapmirrorState}, status => $result->{snapmirrorState},
lag => int($result->{snapmirrorLag} / 100), lag => int($result->{snapmirrorLag} / 100),
}; };
} }
if (scalar(keys %{$self->{snapmirror}}) <= 0) {
$self->{output}->add_option_msg(short_msg => "No snapmirrors found.");
$self->{output}->option_exit();
}
} }
1; 1;
@ -175,6 +186,10 @@ Set the snapmirror name.
Allows to use regexp to filter snampmirror name (with option --name). Allows to use regexp to filter snampmirror name (with option --name).
=item B<--filter-status>
Filter on status (can be a regexp).
=item B<--filter-counters> =item B<--filter-counters>
Only display some counters (regexp can be used). Only display some counters (regexp can be used).
@ -195,15 +210,13 @@ Can used special variables like: %{status}, %{display}
Set critical threshold for status (Default: '%{status} =~ /unknown|brokenOff|uninitialized/i'). Set critical threshold for status (Default: '%{status} =~ /unknown|brokenOff|uninitialized/i').
Can used special variables like: %{status}, %{display} Can used special variables like: %{status}, %{display}
=item B<--warning-*> =item B<--warning-lag>
Threshold warning. Threshold warning.
Can be: 'lag'.
=item B<--critical-*> =item B<--critical-lag>
Threshold critical. Threshold critical.
Can be: 'lag'.
=back =back