Bug 2078828

Summary: Improvements on foreman-maintain's self-upgrade mechanism
Product: Red Hat Satellite Reporter: Amit Upadhye <aupadhye>
Component: Satellite MaintainAssignee: Amit Upadhye <aupadhye>
Status: CLOSED ERRATA QA Contact: Gaurav Talreja <gtalreja>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.10.5CC: apatel, ehelms, gtalreja, kgaikwad, osousa
Target Milestone: 6.10.6Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rubygem-foreman_maintain-0.8.30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 2072530 Environment:
Last Closed: 2022-05-31 16:37:24 UTC Type: ---
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: 2072530    
Bug Blocks: 2026415    

Description Amit Upadhye 2022-04-26 10:09:55 UTC
+++ This bug was initially created as a clone of Bug #2072530 +++

Description of problem:

The foreman-maintain's self-upgrade command needs improvement as below,

1. Allow only upgrade to next .Y release
2. Capitalize the ENV variable
3. Provide an option to pass maintenance repository label in case of disconnected or testing environments. This is additional to existing way of exporting 'MAINTENANCE_REPO_LABEL' variable.
4. Unify the ENV var and option name.

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

6.11 and 6.10


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Amit Upadhye on 2022-04-06 18:57:54 IST ---

With these changes workflow changes as below,

1. The command changes to,

# satellite-maintain self-upgrade

There is no target version as its calculated considering the installed version.

2. There is no --target-version option hence no need to pass the version to the command

3. The ENV var changed to 'MAINTENANCE_REPO_LABEL'

4. Have additional optional option 'maintenance-repo-label',

# bin/foreman-maintain self-upgrade --help
Usage:
    foreman-maintain self-upgrade [OPTIONS]

Options:
    --maintenance-repo-label REPOSITORY_LABEL    Repository label from which packages should be updated.This can be used when standard CDN repositories are unavailable.
    -h, --help                                   print help

Comment 2 Gaurav Talreja 2022-05-16 13:28:09 UTC
Verified.

Tested on Satellite 6.10.6 Snap 1.0
Version: rubygem-foreman_maintain-0.8.30-1.el7sat.noarch

Steps:
1. # foreman-maintain self-upgrade
2. Add custom_repo for 6.11 with the label 'sat-maintain'
3. # MAINTENANCE_REPO_LABEL='sat-maintain' foreman-maintain self-upgrade 
4. # foreman-maintain self-upgrade --maintenance-repo-label sat-maintain

Observation, 
Step1, tries only to enable the 6.11 repo (N+1 only) and updates package(s) satellite-maintain, rubygem-foreman_maintain.
No target-version option is required now, and as the N+1 repo won't be available till 6.11 GA, here self-upgrade passes and hit BZ 2060396, due to some code limitations, Amit was unable to cherrypick BZ 2060396 for 6.10.z.

Step3 or Step4, For disconnected/testing environments it tries to enable custom repo labeled from MAINTENANCE_REPO_LABEL env var or using option "--maintenance-repo-label" and updates package(s) satellite-maintain, rubygem-foreman_maintain.

Comment 5 errata-xmlrpc 2022-05-31 16:37:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Satellite Maintenance 6.10.6 Async Bug Fix Update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:4851