Bug 1936872

Summary: satellite-maintain upgrade check does not compare enabled repos for satellite or capsule with installed packages
Product: Red Hat Satellite Reporter: Stefan Nemeth <snemeth>
Component: Foreman MaintainAssignee: satellite6-bugs <satellite6-bugs>
Status: NEW --- QA Contact: Griffin Sullivan <gsulliva>
Severity: medium Docs Contact:
Priority: high    
Version: 6.8.0CC: apatel, aupadhye, ekohlvan, jangerrit.kootstra, jpathan, kgaikwad
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: UnusedFlags: aupadhye: needinfo? (snemeth)
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1957813    

Description Stefan Nemeth 2021-03-09 11:45:58 UTC
Description of problem:

satellite-maintain upgrade check --target-version 6.8.z

step  Checking repositories enabled on the system  

does not compare enabled repository, capsule or satellite to actually installed packages. If capsule repo is enabled on satellite, instead of satellite repository, installer successfully continues and fails later on 

Error: Important rpm package satellite is not installed!
Install satellite rpm to ensure system consistency.


Version-Release number of selected component (if applicable):
6.8.4

How reproducible:
100%^

Steps to Reproduce:
1. on satellite server 
#subscription-manager repos --disable='rhel-7-server-satellite-6.8-rpms'
2. #subscription-manager repos --enable='rhel-7-server-satellite-capsule-6.8-rpms'
3.foreman-maintain upgrade check --target-version 6.8.z

Actual results:

satellite-maintain sees capsule repo as legitimate if it is enabled on satellite and vice versa leading to upgrade failure on

Error: Important rpm package satellite is not installed!
Install satellite rpm to ensure system consistency.

Expected results:

check for installed packages (satellite.noarch, satellite-capsule.noarch) before verifying the repositories

Additional info:

Comment 1 ir. Jan Gerrit Kootstra 2021-05-26 11:06:56 UTC
Encounter this bug when trying to upgrade a capsule from 6.8.6 to 6.9.2

Comment 4 Amit Upadhye 2022-05-05 14:42:18 UTC
Hello,

The satellite-maintain enables the repository as per the name of the package(satellite/capsule) before doing the upgrade, and repository-validate checks if required repositories are available on system or not,

https://github.com/theforeman/foreman_maintain/blob/master/lib/foreman_maintain/concerns/downstream.rb#L95

To avoid the situation where installed system as per scenario does not match with package(satellite/capsule) there is 'validate_downstream_packages'

https://github.com/theforeman/foreman_maintain/blob/master/lib/foreman_maintain/concerns/primary_checks.rb

and its being called already prior to doing any pre_upgrade_checks,

https://github.com/theforeman/foreman_maintain/blob/master/lib/foreman_maintain/cli/upgrade_command.rb#L71
https://github.com/theforeman/foreman_maintain/blob/master/lib/foreman_maintain/cli/upgrade_command.rb#L91

Considering satellite-maintain won't fall in situation where it will let the upgrade complete with invalid repository, I think this bugzilla should be closed?

_
Amit Upadhye.

Comment 5 ir. Jan Gerrit Kootstra 2022-05-06 06:23:50 UTC
Hi Amit,

Please explain how this early stage check works, for it has failed in our situation once for a capsule where by accident some former colleague had activated a satellite repo on a capsule and the pre check did not give a warning or error message to fix this issue.

So we got a mix of capsule and satellite server packages on the machine. This broke the capsule.

I ask you not to close the bugzilla, until it is clear the issue described in this bugzilla is fixed.

Regards,


Jan Gerrit Kootstra