Searching a host by a parameter that is connected to it's domain results in the following error:
PG::Error: ERROR: column hosts.domain_id does not exist LINE 1: ...WHERE "hosts"."type" IN ('Host::Managed') AND ((( hosts.doma... ^ : SELECT "hosts".* FROM "hosts" WHERE "hosts"."type" IN ('Host::Managed') AND ((( hosts.domain_id = 1 ))) ORDER BY "hosts"."name" ASC LIMIT 20 OFFSET 0
This is a result of trying to add a condition on hosts.domain_id: https://github.com/theforeman/foreman/blob/develop/app/models/concerns/hostext/search.rb#L212
domain_id is delegated to primary_interface but since search_by_params constructs a sql condition directly that doesn't help.
The condition in search_by_params needs to add the join to get the domain_id.
Created from redmine issue http://projects.theforeman.org/issues/13937
Upstream bug assigned to email@example.com
Moving to POST since upstream bug http://projects.theforeman.org/issues/13937 has been closed
Applied in changeset commit:f2506d3482098dcd4faffe64c036f139d77034d7.
please provide the verification steps.
1. Create a domian with a parameter named "foo" with the value "bar"
2. Create a host connected to that domain
3. In Hosts -> All hosts search for: params.foo = bar
4. Make sure the search returns the host
We can now search hosts successfully using parameters like "params.subnet = vlan111" or "params.subnet = 112".
VERIFIED with sat62-snap(GA)-13.1
Created attachment 1162787 [details]
searching host by domain param works fine
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.