Skip to content

Commit a201be3

Browse files
committed
Fixes #37114: Download packages during upgrade before maintenance mode
Only clean package cache when downloading packages Only clean metadata when cleaning dnf cache
1 parent 92870d0 commit a201be3

File tree

8 files changed

+47
-31
lines changed

8 files changed

+47
-31
lines changed

definitions/procedures/packages/update.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ class Update < ForemanMaintain::Procedure
77
param :warn_on_errors, 'Do not interrupt scenario on failure',
88
:flag => true, :default => false
99
param :dnf_options, 'Extra dnf options if any', :array => true, :default => []
10+
param :clean_cache, 'If true will cause a DNF cache clean', :flag => true, :default => true
1011
end
1112

1213
def run
1314
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
14-
package_manager.clean_cache(:assumeyes => assumeyes_val)
15+
package_manager.clean_cache(:assumeyes => assumeyes_val) if @clean_cache
1516
opts = { :assumeyes => assumeyes_val, :dnf_options => @dnf_options }
1617
packages_action(:update, @packages, opts)
1718
rescue ForemanMaintain::Error::ExecutionError => e
@@ -27,11 +28,15 @@ def necessary?
2728
end
2829

2930
def description
30-
if @dnf_options.include?('--downloadonly')
31+
if download_only?
3132
"Download package(s) #{@packages.join(', ')}"
3233
else
3334
"Update package(s) #{@packages.join(', ')}"
3435
end
3536
end
37+
38+
def download_only?
39+
@dnf_options.include?('--downloadonly')
40+
end
3641
end
3742
end

definitions/scenarios/upgrade_to_capsule_6_16.rb

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ class PreMigrations < Abstract
3838
end
3939

4040
def compose
41+
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
42+
modules_to_enable = ["satellite-capsule:#{el_short_name}"]
43+
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
44+
add_step(Procedures::Packages::Update.new(
45+
:assumeyes => true,
46+
:dnf_options => ['--downloadonly']
47+
))
48+
4149
add_steps(find_procedures(:pre_migrations))
4250
end
4351
end
@@ -53,13 +61,8 @@ def set_context_mapping
5361
end
5462

5563
def compose
56-
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
57-
modules_to_enable = ["satellite-capsule:#{el_short_name}"]
58-
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
59-
add_step(Procedures::Packages::Update.new(:assumeyes => true,
60-
:dnf_options => ['--downloadonly']))
6164
add_step(Procedures::Service::Stop.new)
62-
add_step(Procedures::Packages::Update.new(:assumeyes => true))
65+
add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
6366
add_step_with_context(Procedures::Installer::Upgrade)
6467
end
6568
end

definitions/scenarios/upgrade_to_capsule_6_16_z.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ class PreMigrations < Abstract
3838
end
3939

4040
def compose
41+
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
42+
modules_to_enable = ["satellite-capsule:#{el_short_name}"]
43+
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
44+
add_step(Procedures::Packages::Update.new(
45+
:assumeyes => true,
46+
:dnf_options => ['--downloadonly']
47+
))
4148
add_steps(find_procedures(:pre_migrations))
4249
end
4350
end
@@ -53,13 +60,8 @@ def set_context_mapping
5360
end
5461

5562
def compose
56-
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
57-
modules_to_enable = ["satellite-capsule:#{el_short_name}"]
58-
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
59-
add_step(Procedures::Packages::Update.new(:assumeyes => true,
60-
:dnf_options => ['--downloadonly']))
6163
add_step(Procedures::Service::Stop.new)
62-
add_step(Procedures::Packages::Update.new(:assumeyes => true))
64+
add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
6365
add_step_with_context(Procedures::Installer::Upgrade)
6466
end
6567
end

definitions/scenarios/upgrade_to_katello_nightly.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,12 @@ def compose
5454
add_step(Procedures::Repositories::Setup.new(:version => 'nightly'))
5555
modules_to_enable = ["katello:#{el_short_name}", "pulpcore:#{el_short_name}"]
5656
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
57-
add_step(Procedures::Packages::Update.new(:assumeyes => true,
58-
:dnf_options => ['--downloadonly']))
57+
add_step(Procedures::Packages::Update.new(
58+
:assumeyes => true,
59+
:dnf_options => ['--downloadonly']
60+
))
5961
add_step(Procedures::Service::Stop.new)
60-
add_step(Procedures::Packages::Update.new(:assumeyes => true))
62+
add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
6163
add_step_with_context(Procedures::Installer::Upgrade)
6264
end
6365
end

definitions/scenarios/upgrade_to_satellite_6_16.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ class PreMigrations < Abstract
3838
end
3939

4040
def compose
41+
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
42+
modules_to_enable = ["satellite:#{el_short_name}"]
43+
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
44+
add_step(Procedures::Packages::Update.new(
45+
:assumeyes => true,
46+
:dnf_options => ['--downloadonly']
47+
))
4148
add_steps(find_procedures(:pre_migrations))
4249
end
4350
end
@@ -54,13 +61,8 @@ def set_context_mapping
5461
end
5562

5663
def compose
57-
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
58-
modules_to_enable = ["satellite:#{el_short_name}"]
59-
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
60-
add_step(Procedures::Packages::Update.new(:assumeyes => true,
61-
:dnf_options => ['--downloadonly']))
6264
add_step(Procedures::Service::Stop.new)
63-
add_step(Procedures::Packages::Update.new(:assumeyes => true))
65+
add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
6466
add_step_with_context(Procedures::Installer::Upgrade)
6567
add_step(Procedures::Installer::UpgradeRakeTask)
6668
end

definitions/scenarios/upgrade_to_satellite_6_16_z.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ class PreMigrations < Abstract
3838
end
3939

4040
def compose
41+
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
42+
modules_to_enable = ["satellite:#{el_short_name}"]
43+
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
44+
add_step(Procedures::Packages::Update.new(
45+
:assumeyes => true,
46+
:dnf_options => ['--downloadonly']
47+
))
4148
add_steps(find_procedures(:pre_migrations))
4249
end
4350
end
@@ -53,13 +60,8 @@ def set_context_mapping
5360
end
5461

5562
def compose
56-
add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
57-
modules_to_enable = ["satellite:#{el_short_name}"]
58-
add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
59-
add_step(Procedures::Packages::Update.new(:assumeyes => true,
60-
:dnf_options => ['--downloadonly']))
6163
add_step(Procedures::Service::Stop.new)
62-
add_step(Procedures::Packages::Update.new(:assumeyes => true))
64+
add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
6365
add_step_with_context(Procedures::Installer::Upgrade)
6466
add_step(Procedures::Installer::UpgradeRakeTask)
6567
end

lib/foreman_maintain/package_manager/dnf.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def list_installed_packages(queryformat = '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}
9292
end
9393

9494
def clean_cache(assumeyes: false)
95-
dnf_action('clean', 'all', :assumeyes => assumeyes)
95+
dnf_action('clean', 'metadata', :assumeyes => assumeyes)
9696
end
9797

9898
def module_enabled?(name)

test/lib/package_manager/dnf_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def with_lock_config(protector_enabled: false)
148148
describe 'clean_cache' do
149149
it 'invokes dnf to clean cache' do
150150
expect_execute!(
151-
'dnf -y --disableplugin=foreman-protector clean all',
151+
'dnf -y --disableplugin=foreman-protector clean metadata',
152152
:interactive => false
153153
)
154154
subject.clean_cache(:assumeyes => true)

0 commit comments

Comments
 (0)