Revision 89a3e4c2
Added by Marek Hulán almost 6 years ago
app/models/concerns/hostext/search.rb | ||
---|---|---|
|
||
def search_by_config_group(key, operator, value)
|
||
conditions = sanitize_sql_for_conditions(["config_groups.name #{operator} ?", value_to_sql(operator, value)])
|
||
host_ids = Host::Managed.authorized(:view_hosts, Host).where(conditions).joins(:config_groups).distinct.pluck('hosts.id')
|
||
host_ids = Host::Managed.where(conditions).joins(:config_groups).distinct.pluck('hosts.id')
|
||
hostgroup_ids = Hostgroup.unscoped.with_taxonomy_scope.where(conditions).joins(:config_groups).distinct.map(&:subtree_ids).flatten.uniq
|
||
|
||
opts = ''
|
test/models/concerns/hostext/search_test.rb | ||
---|---|---|
require 'test_helper'
|
||
|
||
module Hostext
|
||
class SearchTest < ActiveSupport::TestCase
|
||
context 'host exists' do
|
||
setup do
|
||
@host = FactoryBot.create(:host)
|
||
end
|
||
|
||
test "can be found by config group" do
|
||
config_group = FactoryBot.create(:config_group)
|
||
@host.config_groups = [ config_group ]
|
||
result = Host.search_for("config_group = #{config_group.name}")
|
||
assert_includes result, @host
|
||
end
|
||
|
||
test "search by config group returns only host within that config group" do
|
||
config_group = FactoryBot.create(:config_group)
|
||
result = Host.search_for("config_group = #{config_group.name}")
|
||
assert_not_includes result, @host
|
||
end
|
||
end
|
||
end
|
||
end
|
Also available in: Unified diff
Fixes #23951 - fix searching by config group