"All Hosts" -> "Installable updates" shows 42 "Rpm package updates", but not visible when you look at the host

Problem:
“All Hosts” → “Installable updates” shows:
6 “Security” updates (correct), and
42 “Rpm package updates” (incorrect)

The host is fully updated, but i have “exclude=kernel*” in yum.conf, so there are 6 kernel updates available which will not install, so the 6 in “Security” updates is correct.

But, when i look at details for host, in Content → Packages, and select “Upgradeable” it only shows the handful of kernel package updates. There are only 6 RPM package updates available, not 42.

Expected outcome:

“All Hosts” → “Installable updates” column shows correct number of “Rpm package updates”.

If i then click on the little icon to open the Content->Packages tab and list the available “Rpm package updates”, then the number of “Upgradeable” packages i see there should match the number in All Hosts → “Installable updates” or it should be close.

In my example, the 6 available kernel package updates actually gives rise to 11 “Upgradeable” packages in Content → Packages → “Upgradeable”. This happens because i have 2 kernels installed, so the 6 available kernel packages shows as 6 “upgradeable” packages for 1 installed kernel and 5 for the older installed kernel (as kernel-headers is only installed for newest kernel). This in itself is a stupid way to display the available package updates. No-one wants the available updates displayed in this duplicated way, but that is another issue. Fortunately this issue only affects a few packages like kernel*, where multiple versions are already installed.

The real issue here though is that 42 “RPM package updates” on All Hosts → “Installable updates”, does not equal the 6 updated kernel packages that are actually available, nor does it match the 11 installed kernel packages that are “Upgradeable” by those 6 packages.

Where on earth is the “All Hosts” → “Installable Updates” getting 42 “RPM Package Updates” for this host?

I actually have 2 hosts out of 20 or so, which exhibit this issue. Other hosts are all OK.

Deleting the host out of foreman and re-adding it does not fix the issue, numbers come up the same after re-add. “Refresh errata availablility” also does not help. When i try that, it runs a job to execute “subscription-manager repos”, to list the available repos, and that fails due to authentication issue. I can go to the failed “subscription-manager repos” job and manually re-run it and give it correct auth. details and it works. But it fails when i just launch the job via “Refresh errata availablility”, which is also stupid.

Foreman and Proxy versions:
Foreman 3.9.1 / Katello 4.11

Foreman and Proxy plugin versions:
foreman-tasks|9.0.1
foreman_remote_execution|12.0.2
foreman_scc_manager|2.3.0
katello|4.11.0

Distribution and version:
RHEL8, fully patched

Other relevant data:

Ah. I have answered my own question.

On the “All Hosts” page → “Installable Updates” column, i have a host with “RPM package updates”=42 & the icon next to 42 is a link to:

https://foremanhost/new/hosts/clienthostname#/Content/packages?status=Upgradable

If i click on this link it shows 11 currently installed kernel packages which are “Upgradeable”, NOT the 42 package updates that the source of link promised.

This is a BUG. You don’t promise 42 and then deliver 11.

HOWEVER!
On the “Content Hosts” → “Installable Updates” column, we have the same numbers as on the “All Hosts” page →

  • 6 Security, 0 BugFix, 0 Enhancements, 42 “rpm Package Updates”

Here though, the icon next to 42 is a link to:

https://foremanhost/content_hosts/31/packages/applicable

And when i click on that, it takes me to a different page which CORRECTLY shows me the 42 available package updates. In this case, I can see that indeed, there are 42 available kernel packages which would be updates to the 11 kernel packages i have installed.

So, the Content Hosts page is correct, but there is a bug in the All Hosts page.

“All Hosts” page → “Installable Updates” column → “RPM package updates” link needs to be changed so it is the SAME as link in “Content Hosts” → “Installable Updates” column → “rpm Package Updates”.
Ie so it goes to https://foremanhost/content_hosts/31/packages/applicable

I created this issue to get this fixed:
Bug #37057: “All Hosts” page → “Installable Updates” column -> “RPM package updates” URL links to Content/packages?status=Upgradable but should link to content_hosts/XX/packages/applicable - Foreman