Currently, when searching for systems which *don't* have a particular feature that is populated by the inventory script, Beaker will happily include systems that haven't been inventoried at all in the results. This is incorrect - if a user says "give me a system without a graphics card" a system that "may or may not have a graphics card, we don't know" isn't likely to be a desirable answer. When an affected feature is mentioned in a system query (whether through the web UI or through the job XML), uninventoried systems should be excluded from the results automatically.
In the WebUI the way to search for something that is not inventories is to search for: [System/<X> [is] [ ] (i.e blank). Anywhere where the value is left blank, it checks for NULL or ''.
On the hostRequires side of things, I think we need to add some code so that any criteria which touch fields populated by the inventory script (which is most of them, but not all) would also apply a filter System.date_lastcheckin != None, to exclude systems which have never been inventoried. For the web UI search, I'm not so sure.
On Gerrit: http://gerrit.beaker-project.org/#/c/1872/
*** Bug 888048 has been marked as a duplicate of this bug. ***
Dropping this from 1.0 for now, because there is some contention about the proposed fix: * Filtering for date_lastcheckin != None for some fields but not other will give inconsistent behaviour, which might be surprising to users and hard to document. * The search bar code in its current state does not make it easy to add this extra filter cleanly for all relevant fields, so the implementation is somewhat hacky. Bug 949777 will give the ability to find uninventoried systems (in order to inventory them) and to filter out uninventoried systems explicitly if desired. So we believe this bug will not be a serious issue.
Kicking back to NEW, since if we do this, we won't do it the way the linked Gerrit patch proposes.