From 9b5b5c2aa0d1cf92a88811ad46cd17fcf5e01b24 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Tue, 1 Sep 2020 16:25:21 +0200 Subject: [PATCH] fix(disco): fix service discovery - filter rules --- .../centreon/autodiscovery/services/discovery.pm | 2 +- .../centreon/autodiscovery/services/resources.pm | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gorgone/gorgone/modules/centreon/autodiscovery/services/discovery.pm b/gorgone/gorgone/modules/centreon/autodiscovery/services/discovery.pm index d378e4607ef..4254e2af7e1 100644 --- a/gorgone/gorgone/modules/centreon/autodiscovery/services/discovery.pm +++ b/gorgone/gorgone/modules/centreon/autodiscovery/services/discovery.pm @@ -824,7 +824,7 @@ sub launchdiscovery { ($status, $message, my $rules) = gorgone::modules::centreon::autodiscovery::services::resources::get_rules( class_object_centreon => $self->{class_object_centreon}, filter_rules => $options{data}->{content}->{filter_rules}, - force_rule => $options{data}->{content}->{force_rule} + force_rule => (defined($options{data}->{content}->{force_rule}) && $options{data}->{content}->{force_rule} =~ /^1$/) ? 1 : 0 ); if ($status < 0) { $self->send_log_msg_error(token => $options{token}, subname => 'servicediscovery', number => $self->{uuid}, message => $message); diff --git a/gorgone/gorgone/modules/centreon/autodiscovery/services/resources.pm b/gorgone/gorgone/modules/centreon/autodiscovery/services/resources.pm index 31502c29728..ff67f20048a 100644 --- a/gorgone/gorgone/modules/centreon/autodiscovery/services/resources.pm +++ b/gorgone/gorgone/modules/centreon/autodiscovery/services/resources.pm @@ -103,9 +103,18 @@ sub get_rules { my (%options) = @_; my $filter = "rule_activate = '1' AND "; - if (defined($options{force_rule})) { + if (defined($options{force_rule}) && $options{force_rule} == 1) { $filter = ''; } + if (defined($options{filter_rules}) && scalar(@{$options{filter_rules}}) > 0) { + my $append = ''; + $filter .= 'rule_alias IN ('; + foreach my $rule (@{$options{filter_rules}}) { + $filter .= $append . $options{class_object_centreon}->quote(value => $rule); + $append = ', '; + } + $filter .= ') AND '; + } my ($status, $rules) = $options{class_object_centreon}->custom_execute( request =>