Registered hosts' report performs poorly
Description of problem:
Performance testing shows that there's most likely something done inefficiently in the Registered hosts report. I've tested on a Satellite with 10 000 systems.
When running a report without filters, it takes 8 minutes (there are no performance requirements specified so this should be fine). However, when running with a host filter such that it limits hosts to only 500 of these 10 000, the report generation consistently fails with ISE after 30 minutes.
Tested on a RHEL7 machine with Intel Xeon, 4 sockets, 32 cores, hyperthreading, 2.7 Ghz, 128 GB RAM
Version-Release number of selected component (if applicable):
6.5 snap 5
Deterministic on one machine but may be influenced by the machine's performance.
Steps to Reproduce:
1. Have a Satellite with 10 000 systems, 500 of them with some easily filterable name
2. Monitor -> Report Templates -> Registered Hosts -> Generate
3. Fill in a filter such that it selects 500 systems
ISE after 30 minutes
Report generated. I'd expect it to be faster than without the filter
Fixes #25624 - add explicit kernel release fact loader
The problem with registered hosts report is that for each host we load
all host facts just in order to display kernelrelease fact value. We
can define explicit association for this fact so we can `:include` it.
To use it in templates a new macro `host_kernel_release` is introduced.