Bug 1964080

Summary: [BUG] The != and ~ search params does not work with os_minor parameter in Satellite 6.9
Product: Red Hat Satellite Reporter: Sayan Das <saydas>
Component: SearchAssignee: Adam Ruzicka <aruzicka>
Status: CLOSED ERRATA QA Contact: Jameer Pathan <jpathan>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.9.0CC: afeferku, apatel, avnkumar, dprabhu, joseph.spriano, kgaikwad, mhulan, satellite6-bugs, zhunting
Target Milestone: 6.12.0Keywords: Regression, Triaged
Target Release: Unused   
Hardware: All   
OS: Unspecified   
Whiteboard:
Fixed In Version: foreman-3.4.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-16 13:32:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sayan Das 2021-05-24 16:55:25 UTC
Description of problem:

Please see the reproducer steps.

Version-Release number of selected component (if applicable):

Satellite 6.9 


How reproducible:

Always


Steps to Reproduce:
1. Hosts --> Content Hosts
2. Search by : os_minor != 4
3. Search by : os_minor ~ 4

Actual results:

At 2 i.e. os_minor != 4 
~~
external method 'search_by_os_minor' failed with error: undefined method `<>' for 9:Integer Did you mean? <
~~

At 3 i.e. os_minor ~ 4
~~
external method 'search_by_os_minor' failed with error: undefined method `ILIKE' for 9:Integer
~~


Expected results:

Provide valid search results.


Additional info:

* No issue in Satellite 6.8 but only in Satellite 6.9.

* Don't see any changes in /usr/share/foreman/app/models/concerns/hostext/search.rb for search_by_os_minor function in both Satellite 6.8 and 6.9. So that means something else have got changed in Satellite 6.9

Comment 1 Sayan Das 2021-05-24 16:58:22 UTC
For "os_minor != 4 "

We can have it working if we try in this way i.e. not os_minor = 4 

or, we can use a combination of <> i.e. (os_minor < 4 or os_minor > 4)

Comment 3 Sayan Das 2021-10-29 15:01:57 UTC
I am re-confirming that the issue is also present in Satellite 6.8 as well. 

At 2 i.e. os_minor != 4 
~~
external method 'search_by_os_minor' failed with error: undefined method `<>' for 9:Integer Did you mean? <
~~

At 3 i.e. os_minor ~ 4
~~
external method 'search_by_os_minor' failed with error: undefined method `ILIKE' for 9:Integer
~~


And we have different symptom for os_major here i.e. 

with --> os_major ~ 8


external method 'search_by_os_major' failed with error: PG::UndefinedFunction: ERROR: operator does not exist: numeric ~~* unknown LINE 1: ... "operatingsystems" WHERE (CAST(major AS DECIMAL) ILIKE '%%8... ^ HINT: No operator matches the given name and argument types. You might need to add explicit type casts 


Let me know if I need to open a new Bug for OS major or this bug is good enough to fix both os_major and os_minor issues with != and ~ .



Regards,

Sayan

Comment 4 Adam Ruzicka 2022-05-31 11:18:27 UTC
Created redmine issue https://projects.theforeman.org/issues/34989 from this bug

Comment 5 Adam Ruzicka 2022-06-15 08:36:06 UTC
> Let me know if I need to open a new Bug for OS major or this bug is good enough

This bug is good enough.

Comment 6 Jameer Pathan 2022-10-04 12:35:29 UTC
Verified:

Verified with:
- Satellite 6.12.0 snap 13

Test steps:
- Go to Hosts > Content Hosts
- Search by: os_minor != 6
- Search by: os_minor ~ 6
- Search by: os_major != 8
- Search by: os_major ~ 8

Observations:
- Valid search results were provided.

Comment 10 errata-xmlrpc 2022-11-16 13:32:29 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 (Important: Satellite 6.12 Release), 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/RHSA-2022:8506