Description of problem: The command 'satellite-maintain packages check-update' fails when there are no packages to be updated. --- I, [2022-04-08 13:28:47-0400 #9496] INFO -- : Running foreman-maintain command with arguments [["packages", "check-update"]] I, [2022-04-08 13:28:47-0400 #9496] INFO -- : === Scenario 'Check for available package updates' started === I, [2022-04-08 13:28:47-0400 #9496] INFO -- : --- Execution step 'Check for available package updates' [packages-check-update] started --- D, [2022-04-08 13:28:47-0400 #9496] DEBUG -- : Running command yum -y --disableplugin=foreman-protector check-update with stdin nil D, [2022-04-08 13:29:06-0400 #9496] DEBUG -- : output of the command: Loaded plugins: product-id, search-disabled-repos, subscription-manager E, [2022-04-08 13:29:06-0400 #9496] ERROR -- : Failed executing yum -y --disableplugin=foreman-protector check-update , exit status 0: Loaded plugins: product-id, search-disabled-repos, subscription-manager (ForemanMaintain::Error::ExecutionError) --- How reproducible: 100% Steps to Reproduce: 1. Update all the rpms 2. Run: ~~~ satellite-maintain packages check-update ~~~ Actual results: ~~~ satellite-maintain packages check-update Running Check for available package updates ================================================================================ Check for available package updates: [FAIL] Failed executing yum -y --disableplugin=foreman-protector check-update , exit status 0: Loaded plugins: product-id, search-disabled-repos, subscription-manager -------------------------------------------------------------------------------- Scenario [Check for available package updates] failed. The following steps ended up in failing state: [packages-check-update] Resolve the failed steps and rerun the command. In case the failures are false positives, use --whitelist="packages-check-update" ~~~ Expected results: The tasks should not fail if there are no RPM's to be updated Additional info: The RC=100 is expected when 'yum update-check' finds a RPM. On the other hand, the RC=0 is expected when no RPM's are returned(Operation was successful). And the code should handle both RC's.
Created and Attaching: Bug #36369: Consider both 0 and 100 as valid exit codes for check-update yum action - Foreman Maintain - Foreman https://projects.theforeman.org/issues/36369 Fixes #36369 - Exit code 0 is a valid exit status by sayan3296 · Pull Request #729 · theforeman/foreman_maintain https://github.com/theforeman/foreman_maintain/pull/729
Moving this bug to POST for triage into Satellite since the upstream issue https://projects.theforeman.org/issues/36369 has been resolved.
need this fix released in an upstream version of foreman_maintain
Verified that it works correctly on Satellite 6.14.0 snap 7.0. Running `satellite-maintain packages check-update` after updating all the rpms the task finishes successfully with OK status. # satellite-maintain packages check-update Running Check for available package updates ================================================================================ Check for available package updates: Updating Subscription Management repositories. Satellite 6.14 RHEL8 329 kB/s | 3.0 kB 00:00 Satellite Maintenance 6.14 RHEL8 437 kB/s | 2.6 kB 00:00 Security: kernel-core-4.18.0-477.15.1.el8_8.x86_64 is an installed security update Security: kernel-core-4.18.0-477.13.1.el8_8.x86_64 is the currently running version [OK] --------------------------------------------------------------------------------