Bug 1313878

Summary: Can't search host by domain parameters
Product: Red Hat Satellite Reporter: orabin
Component: ProvisioningAssignee: orabin
Status: CLOSED ERRATA QA Contact: Kedar Bidarkar <kbidarka>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.0.4CC: bbuckingham, kbidarka, orabin, sthirugn
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/13937
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-27 09:04:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
searching host by domain param works fine none

Description orabin 2016-03-02 14:19:06 UTC
Searching a host by a parameter that is connected to it's domain results in the following error:
<pre>
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
</pre>
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.

Comment 1 orabin 2016-03-02 14:19:08 UTC
Created from redmine issue http://projects.theforeman.org/issues/13937

Comment 2 orabin 2016-03-02 14:19:13 UTC
Upstream bug assigned to orabin

Comment 4 Bryan Kearney 2016-03-08 13:03:53 UTC
Moving to POST since upstream bug http://projects.theforeman.org/issues/13937 has been closed
-------------
Ori Rabin
Applied in changeset commit:f2506d3482098dcd4faffe64c036f139d77034d7.

Comment 6 Kedar Bidarkar 2016-05-24 10:12:50 UTC
please provide the verification steps.

Comment 7 orabin 2016-05-24 10:21:44 UTC
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

Comment 8 Kedar Bidarkar 2016-05-30 11:46:53 UTC
We can now search hosts successfully using parameters like "params.subnet = vlan111" or "params.subnet = 112".

VERIFIED with sat62-snap(GA)-13.1

Comment 9 Kedar Bidarkar 2016-05-30 11:50:35 UTC
Created attachment 1162787 [details]
searching host by domain param works fine

Comment 11 errata-xmlrpc 2016-07-27 09:04:03 UTC
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.

https://access.redhat.com/errata/RHBA-2016:1500