Skip to content

Commit

Permalink
Fixes #34854 - disable custom repo if it was not enabled
Browse files Browse the repository at this point in the history
(cherry picked from commit 2324848)
  • Loading branch information
upadhyeammit committed May 11, 2022
1 parent 7e0aaed commit 357a0b0
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
7 changes: 6 additions & 1 deletion definitions/scenarios/self_upgrade.rb
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,10 @@ def all_maintenance_repos

def repos_ids_to_reenable
repos_ids_to_reenable = stored_enabled_repos_ids - all_maintenance_repos
repos_ids_to_reenable << maintenance_repo(maintenance_repo_version)
if use_rhsm?
repos_ids_to_reenable << maintenance_repo(maintenance_repo_version)
end
repos_ids_to_reenable
end

def use_rhsm?
Expand Down Expand Up @@ -102,6 +105,7 @@ def compose
add_step(Procedures::Repositories::Enable.new(repos: req_repos_to_update_pkgs,
use_rhsm: use_rhsm?))
add_step(Procedures::Packages::Update.new(packages: pkgs_to_update, assumeyes: true))
disable_repos('*')
enable_repos(repos_ids_to_reenable)
end
end
Expand All @@ -118,6 +122,7 @@ class SelfUpgradeRescue < SelfUpgradeBase

def compose
if check_min_version('foreman', '2.5') || check_min_version('foreman-proxy', '2.5')
disable_repos('*')
enable_repos(repos_ids_to_reenable)
end
end
Expand Down
38 changes: 38 additions & 0 deletions test/definitions/scenarios/self_upgrade_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
require 'test_helper'

module Scenarios
describe ForemanMaintain::Scenarios::SelfUpgrade do
include DefinitionsTestHelper

let(:scenario) do
ForemanMaintain::Scenarios::SelfUpgrade.new
end

describe 'using CDN' do
it 'reenables maintenance repo' do
scenario.stubs(:stored_enabled_repos_ids).returns([])
scenario.stubs(:current_version).returns('6.10')
scenario.stubs(:el_major_version).returns(7)
assert_equal ['rhel-7-server-satellite-maintenance-6-rpms'], scenario.repos_ids_to_reenable
end
end

describe 'using custom repos' do
it 'does not reenable maintenance repo if it was disabled' do
scenario.stubs(:stored_enabled_repos_ids).returns([])
scenario.stubs(:current_version).returns('6.10')
scenario.stubs(:el_major_version).returns(7)
scenario.stubs(:maintenance_repo_label).returns('custom-maintenance')
assert_equal [], scenario.repos_ids_to_reenable
end

it 'reenables maintenance repo if it was enabled' do
scenario.stubs(:stored_enabled_repos_ids).returns(['custom-maintenance'])
scenario.stubs(:current_version).returns('6.10')
scenario.stubs(:el_major_version).returns(7)
scenario.stubs(:maintenance_repo_label).returns('custom-maintenance')
assert_equal ['custom-maintenance'], scenario.repos_ids_to_reenable
end
end
end
end

0 comments on commit 357a0b0

Please sign in to comment.