From 7f25cdbd599d0ac05b51c07c03926dccad5099bf Mon Sep 17 00:00:00 2001 From: Ben Magistro Date: Mon, 1 Apr 2024 02:01:16 +0000 Subject: [PATCH] Fix querying for hosts using puppet class Co-authored-by: Ewoud Kohl van Wijngaarden Signed-off-by: Ben Magistro --- app/models/concerns/foreman_puppet/extensions/host.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/models/concerns/foreman_puppet/extensions/host.rb b/app/models/concerns/foreman_puppet/extensions/host.rb index 56177faa..9f504516 100644 --- a/app/models/concerns/foreman_puppet/extensions/host.rb +++ b/app/models/concerns/foreman_puppet/extensions/host.rb @@ -24,10 +24,9 @@ def search_by_puppetclass(_key, operator, value) conditions = sanitize_sql_for_conditions(["puppetclasses.name #{operator} ?", value_to_sql(operator, value)]) config_group_ids = ForemanPuppet::ConfigGroup.joins(:puppetclasses).where(conditions).pluck(:id) host_ids = ::Host.authorized(:view_hosts).joins(puppet: :puppetclasses).where(conditions).distinct.pluck(:id) - host_ids += ForemanPuppet::HostConfigGroup - .where(host_type: 'ForemanPuppet::HostPuppetFacet') - .where(config_group_id: config_group_ids) - .pluck(:host_id) + host_ids += ForemanPuppet::HostPuppetFacet.joins(:host_config_groups) + .where(host_config_groups: { config_group_id: config_group_ids }) + .pluck(:host_id) hostgroup_ids = ::Hostgroup.unscoped.with_taxonomy_scope.joins(puppet: :puppetclasses).where(conditions).map(&:subtree_ids) if config_group_ids.any? hostgroup_cg_ids = ForemanPuppet::HostgroupPuppetFacet.joins(:host_config_groups)