Bug 1470251 - Anding of multiple filters does not product the required results
Anding of multiple filters does not product the required results
Status: CLOSED NOTABUG
Product: Red Hat CloudForms Management Engine
Classification: Red Hat
Component: API (Show other bugs)
unspecified
Unspecified Unspecified
high Severity high
: GA
: cfme-future
Assigned To: Tim Wade
Martin Kourim
rest:filter
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-07-12 11:25 EDT by Allen W
Modified: 2017-07-19 13:55 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-07-19 13:55:04 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Allen W 2017-07-12 11:25:21 EDT
An example query:

 ```
GET http://localhost:3000/api/services?expand=resources&filter%5B%5D=ancestry%3Dnull&filter%5B%5D=tags.name%3D%2Fmanaged%2Fenvironment%2Fdev&filter%5B%5D=tags.name%3D%2Fmanaged%2Flocation%2Fny
```

Running a query with each individual tag reveals the correct results. And so, one would imagine the above query would return all services with the both tag values, when in fact nothing is returned :(



Here's a pr awaiting a fix: https://github.com/ManageIQ/manageiq-ui-service/pull/840
Comment 2 Dave Johnson 2017-07-13 23:01:00 EDT
Please assess the impact of this issue and update the severity accordingly.  Please refer to https://bugzilla.redhat.com/page.cgi?id=fields.html#bug_severity for a reminder on each severity's definition.

If it's something like a tracker bug where it doesn't matter, please set it to Low/Low.
Comment 3 Tim Wade 2017-07-19 13:50:42 EDT
This looks to be a problem with the nature of the relationships being queried. I think officially we do not support queries like that based on one-to-many relationships. What it translates to is "find me all rows where the tag name is /managed/environment/dev AND /managed/location/ny", and since there are no rows where the tag name can be two different things it yields 0 results.

I can see that might be two actions to take on this:

1. We should update the documentation to make this limitation more clear
2. An API that wraps "CONTAINS" - type expressions would be a useful enhancement
Comment 4 Allen W 2017-07-19 13:53:28 EDT
DOH 2. would be what we're looking for, so not a bug, looking like something we should shelve for the time being

Note You need to log in before you can comment on or make changes to this bug.