Project

General

Profile

Actions

Bug #35404

closed

Running "satellite-maintain self-upgrade" on a Satellite\Capsule 6.11.1.1 fails with error "Error: 'satellite-maintenance-6.11.2-for-rhel-8-x86_64-rpms' does not match a valid repository ID"

Added by Amit Upadhye over 2 years ago. Updated about 2 years ago.


Description

Description of problem:

The goal of using "satellite-maintain self-upgrade" is usually for performing a major version upgrade i.e. 6.10 to 6.11 , but when we execute this command on Satellite\Capsule 6.11.1.1 , It tries to enable the maintenance-rpms repo with a wrong version.

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

Satellite\Capsule 6.11.1.1

How reproducible:

100%

Steps to Reproduce:
1. Install the latest most version of Satellite 6.11 and ensure we are on 6.11.1.1-1

2. Run "satellite-maintain self-upgrade"

Actual results:

On RHEL 7:

~~~
Failed executing yum --enablerepo=rhel-7-server-rpms --enablerepo=rhel-server-rhscl-7-rpms --enablerepo=rhel-7-server-satellite-maintenance-6.11.2-rpms y --disableplugin=foreman-protector update satellite-maintain rubygem-foreman_maintain, exit status 1:
Loaded plugins: enabled_repos_upload, package_upload, product-id, search

: disabled-repos, subscription-manager

Error getting repository data for rhel-7-server-satellite-maintenance-6.11.2-rpms, repository not found
Uploading Enabled Repositories Report
Loaded plugins: product-id, subscription-manager
~~~

On RHEL 8:
~~
/ Enabling repositories [FAIL]
Failed executing subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms --enable=rhel-8-for-x86_64-appstream-rpms --enable=satellite-maintenance-6.11.2-for-rhel-8-x86_64-rpms, exit status 1:
Error: 'satellite-maintenance-6.11.2-for-rhel-8-x86_64-rpms' does not match a valid repository ID. Use "subscription-manager repos --list" to see valid repositories.
Repository 'rhel-8-for-x86_64-baseos-rpms' is enabled for this system.
Repository 'rhel-8-for-x86_64-appstream-rpms' is enabled for this system.
--------------------------------------------------------------------------------
~~

As we can see, it tries to enable 6.11.2 instead of 6.12 which is not correct.

Expected results:

If the next major version ( 6.12 ) is not available, the command should immediately stop it's execution.

the next major version ( 6.12 ) is available then the command should try to enable the right maintenance repo for 6.12

Additional info:

From a small testing, the main root cause seems to be the way 6.11.1.1 and 6.11.1 is being processed by the .bump method ruby.

  1. foreman-rake console
    API controllers newer than Apipie cache! Run apipie:cache rake task to regenerate cache.
    Loading production environment (Rails 6.0.4.7)

irb(main):002:0> Gem::Version.new('6.11.1.1').bump
=> #<Gem::Version "6.11.2">

irb(main):003:0> Gem::Version.new('6.11.1.0').bump
=> #<Gem::Version "6.11.2">

irb(main):004:0> Gem::Version.new('6.11.1').bump
=> #<Gem::Version "6.12">

irb(main):005:0> Gem::Version.new('6.11.0').bump
=> #<Gem::Version "6.12">

irb(main):006:0> Gem::Version.new('6.11').bump
=> #<Gem::Version "7">

irb(main):007:0> exit

Actions

Also available in: Atom PDF