Filtering user/user groups/capsules/compute profiles/compute resources with invalid field shows Internal Error
|Assigned To:||Tomer Brisker|
|Found in release:||Pull request:||https://github.com/theforeman/foreman/pull/4656|
|Velocity based estimate||-|
Description of problem: We were trying to filter user/user groups/capsules/compute profiles/ compute resources. In filter, when we added field which was not present in list( any_string=any_string), it returned an error "Something went wrong" and log file had 500 Internal Server Error.
Version-Release number of selected component (if applicable): satellite 6.3.0 snap 6.0
How reproducible: always
Steps to Reproduce:
1. Navigate to Administer-> user/user groups/capsules/compute profiles/compute resources ( producible at any)
2. Filter as any_string=any_string
Shows the error as "Something went wrong" and the log file /var/log/foreman/production.log shows
Rendered common/500.html.erb within layouts/application (3.7ms)
2017-07-10 09:32:35 7d7c37e3 [app] [I] Rendered layouts/_application_content.html.erb (0.5ms)
2017-07-10 09:32:35 7d7c37e3 [app] [I] Rendered layouts/base.html.erb (2.6ms)
2017-07-10 09:32:35 7d7c37e3 [app] [I] Completed 500 Internal Server Error
Expected results: Error should be handled showing alert as "Field not recognised for searching" as happens in filtering hosts(Host -> All Hosts - > Filter ).
Fixes #20272 - correctly rescue QueryNotSupported in production
When in production, the generic exception rescue shadows the
ScopedSearch::QueryNotSupported rescue method, preventing the correct
message being displayed on an invalid search.