foreman_maintain 1.6.8 → 1.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 693bf5fa41d37437188c4990278301d1965819e37fad7b0dc680e1fdff8f8631
4
- data.tar.gz: d56694b7ed8093eeaa814fdf950f5c308d76eeffbf97a654ecbb20ef55611759
3
+ metadata.gz: cdd4ef357f342501b15fbaf461be19952c2d09fde6fb7c1f3523711201ef3faa
4
+ data.tar.gz: cc9b2d323a171c5676276767f11c4a83adc5123fab01f58114d88a80a3ddba13
5
5
  SHA512:
6
- metadata.gz: 40503012245738da00890d0d224141754f00c110f9bbc7c62112b3e11bea7beb066718bfffdc36056ae9afbed29f2ac8ca6d9dd474e4af9a1eee50099a636352
7
- data.tar.gz: d71cfc02366e99a507f1453706d0ffcfe01f1dcdb8cf231a03a4b8468716f1c4b3ae25acfa5938f32858bf17fb37d974d511173b047808b84a03e8dd38ce1d1a
6
+ metadata.gz: fffefa90d5f28514280c732cb232003acb543420a9ca9fd5a9cf77749beecb1533a05d71bb6b7c5db1e3e06dcb5909a5fa3e8f85ef3a98ae369f090cef84c052
7
+ data.tar.gz: cb4997dcbb7eba53f9e4d82445ad327316e3a1ace686e62ffd0b3f4a63ecd418542d73c42d7fe10692fb48054dc902b42faaff2772c744e91c421160210fec13
@@ -9,4 +9,16 @@ class Features::ForemanInstall < ForemanMaintain::Feature
9
9
  !feature(:instance).downstream && feature(:foreman_server)
10
10
  end
11
11
  end
12
+
13
+ def target_version
14
+ '3.11'
15
+ end
16
+
17
+ def current_version
18
+ @current_version ||= package_version(package_name)
19
+ end
20
+
21
+ def package_name
22
+ 'foreman'
23
+ end
12
24
  end
@@ -91,6 +91,24 @@ class Features::Instance < ForemanMaintain::Feature
91
91
  feature(:foreman_install) || feature(:katello_install)
92
92
  end
93
93
 
94
+ def current_version
95
+ version = if feature(:instance).downstream
96
+ feature(:instance).downstream.current_version
97
+ else
98
+ feature(:foreman_install).current_version
99
+ end
100
+
101
+ version.to_s[/^\d+\.\d+\.\d+/]
102
+ end
103
+
104
+ def target_version
105
+ if feature(:instance).downstream
106
+ Features::Satellite.new.target_version
107
+ else
108
+ Features::ForemanInstall.new.target_version
109
+ end
110
+ end
111
+
94
112
  private
95
113
 
96
114
  # rubocop:disable Metrics/AbcSize
@@ -10,6 +10,10 @@ class Features::Satellite < ForemanMaintain::Feature
10
10
  end
11
11
  end
12
12
 
13
+ def target_version
14
+ '6.16'
15
+ end
16
+
13
17
  def current_version
14
18
  @current_version ||= package_version(package_name) || version_from_source
15
19
  end
@@ -2,12 +2,13 @@ module Procedures::Installer
2
2
  class UpgradeRakeTask < ForemanMaintain::Procedure
3
3
  metadata do
4
4
  description 'Execute upgrade:run rake task'
5
+ confine do
6
+ feature(:satellite)
7
+ end
5
8
  end
6
9
 
7
10
  def run
8
- # only run this in the Satellite scenario, as in others
9
- # the installer runs this rake task for us already
10
- execute!('foreman-rake upgrade:run') if feature(:satellite)
11
+ execute!('foreman-rake upgrade:run')
11
12
  end
12
13
  end
13
14
  end
@@ -35,7 +35,7 @@ module ForemanMaintain::Scenarios
35
35
  add_step_with_context(Procedures::Service::Stop)
36
36
  add_steps_with_context(Procedures::Restore::ExtractFiles) if backup.tar_backups_exist?
37
37
 
38
- if backup.sql_dump_files_exist?
38
+ if backup.sql_needs_dump_restore?
39
39
  add_steps_with_context(Procedures::Restore::DropDatabases)
40
40
  restore_sql_dumps(backup)
41
41
  end
@@ -1,11 +1,10 @@
1
- module Scenarios::Satellite_6_16
1
+ module Scenarios::Satellite
2
2
  class Abstract < ForemanMaintain::Scenario
3
3
  def self.upgrade_metadata(&block)
4
4
  metadata do
5
5
  tags :upgrade_scenario
6
6
  confine do
7
- feature(:satellite) &&
8
- (feature(:satellite).current_minor_version == '6.15' || \
7
+ (feature(:downstream).current_minor_version == '6.15' || \
9
8
  ForemanMaintain.upgrade_in_progress == '6.16')
10
9
  end
11
10
  instance_eval(&block)
@@ -19,7 +18,7 @@ module Scenarios::Satellite_6_16
19
18
 
20
19
  class PreUpgradeCheck < Abstract
21
20
  upgrade_metadata do
22
- description 'Checks before upgrading to Satellite 6.16'
21
+ description 'Checks before upgrading'
23
22
  tags :pre_upgrade_checks
24
23
  run_strategy :fail_slow
25
24
  end
@@ -29,14 +28,14 @@ module Scenarios::Satellite_6_16
29
28
  add_steps(find_checks(:pre_upgrade))
30
29
  add_step(Checks::CheckIpv6Disable)
31
30
  add_step(Checks::Disk::AvailableSpacePostgresql13)
32
- add_step(Checks::Repositories::Validate.new(:version => '6.16'))
31
+ add_step(Checks::Repositories::Validate.new(:version => target_version))
33
32
  add_step(Checks::CheckOrganizationContentAccessMode)
34
33
  end
35
34
  end
36
35
 
37
36
  class PreMigrations < Abstract
38
37
  upgrade_metadata do
39
- description 'Procedures before migrating to Satellite 6.16'
38
+ description 'Procedures before migrating'
40
39
  tags :pre_migrations
41
40
  end
42
41
 
@@ -47,7 +46,7 @@ module Scenarios::Satellite_6_16
47
46
 
48
47
  class Migrations < Abstract
49
48
  upgrade_metadata do
50
- description 'Migration scripts to Satellite 6.16'
49
+ description 'Migration scripts'
51
50
  tags :migrations
52
51
  run_strategy :fail_fast
53
52
  end
@@ -57,7 +56,7 @@ module Scenarios::Satellite_6_16
57
56
  end
58
57
 
59
58
  def compose
60
- add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
59
+ add_step(Procedures::Repositories::Setup.new(:version => target_version))
61
60
  if el8?
62
61
  modules_to_switch = ['postgresql:13']
63
62
  add_step(Procedures::Packages::SwitchModules.new(:module_names => modules_to_switch))
@@ -77,7 +76,7 @@ module Scenarios::Satellite_6_16
77
76
 
78
77
  class PostMigrations < Abstract
79
78
  upgrade_metadata do
80
- description 'Procedures after migrating to Satellite 6.16'
79
+ description 'Procedures after migrating'
81
80
  tags :post_migrations
82
81
  end
83
82
 
@@ -90,7 +89,7 @@ module Scenarios::Satellite_6_16
90
89
 
91
90
  class PostUpgradeChecks < Abstract
92
91
  upgrade_metadata do
93
- description 'Checks after upgrading to Satellite 6.16'
92
+ description 'Checks after upgrading'
94
93
  tags :post_upgrade_checks
95
94
  run_strategy :fail_slow
96
95
  end
@@ -4,11 +4,11 @@ module ForemanMaintain::Scenarios
4
4
  include ForemanMaintain::Concerns::Versions
5
5
 
6
6
  def target_version
7
- @target_version ||= Gem::Version.new(current_version).bump.to_s
7
+ feature(:instance).target_version
8
8
  end
9
9
 
10
10
  def current_version
11
- feature(:instance).downstream.current_version.to_s[/^\d+\.\d+\.\d+/]
11
+ feature(:instance).current_version
12
12
  end
13
13
 
14
14
  def maintenance_repo_label
@@ -47,12 +47,11 @@ module ForemanMaintain::Scenarios
47
47
  end
48
48
  end
49
49
 
50
- def upstream_target_version
51
- if feature(:katello_install)
52
- return foreman_version_by_katello(target_version)
53
- else
54
- target_version
55
- end
50
+ def self_upgrade_allowed?
51
+ target = Gem::Version.new(target_version).version
52
+
53
+ Gem::Version.new(current_version).segments[0..1].join('.') == target ||
54
+ Gem::Version.new(current_version).bump.segments[0..1].join('.') == target
56
55
  end
57
56
  end
58
57
 
@@ -65,6 +64,16 @@ module ForemanMaintain::Scenarios
65
64
  end
66
65
 
67
66
  def downstream_self_upgrade(pkgs_to_update)
67
+ unless self_upgrade_allowed?
68
+ raise(
69
+ ForemanMaintain::Error::Warn,
70
+ "foreman-maintain is too many versions ahead. The target " \
71
+ "version is #{target_version} while the currently installed " \
72
+ "version is #{current_version}. Please rollback " \
73
+ "foreman-maintain to the proper version."
74
+ )
75
+ end
76
+
68
77
  ForemanMaintain.enable_maintenance_module
69
78
 
70
79
  add_step(Procedures::Packages::Update.new(packages: pkgs_to_update, assumeyes: true,
@@ -77,7 +86,7 @@ module ForemanMaintain::Scenarios
77
86
  # 2. Update the foreman-maintain packages from next major version repository
78
87
  # 3. Rollback the repository to current major version
79
88
 
80
- add_step(Procedures::Repositories::Setup.new(:version => upstream_target_version))
89
+ add_step(Procedures::Repositories::Setup.new(:version => target_version))
81
90
  add_step(Procedures::Packages::Update.new(packages: pkgs_to_update, assumeyes: true))
82
91
  ensure
83
92
  rollback_repositories
@@ -74,21 +74,10 @@ module ForemanMaintain
74
74
  interactive_option
75
75
  disable_self_upgrade_option
76
76
 
77
- option '--phase', 'phase', 'run only a specific phase', :required => false do |phase|
78
- unless UpgradeRunner::PHASES.include?(phase.to_sym)
79
- raise Error::UsageError, "Unknown phase #{phase}"
80
- end
81
- phase
82
- end
83
-
84
77
  def execute
85
78
  ForemanMaintain.validate_downstream_packages
86
79
  ForemanMaintain.perform_self_upgrade if allow_self_upgrade?
87
- if phase
88
- upgrade_runner.run_phase(phase.to_sym)
89
- else
90
- upgrade_runner.run
91
- end
80
+ upgrade_runner.run
92
81
  upgrade_runner.save
93
82
  exit upgrade_runner.exit_code
94
83
  end
@@ -223,12 +223,20 @@ module ForemanMaintain
223
223
  file_map[:pgsql_data][:present]
224
224
  end
225
225
 
226
+ def sql_tar_files_exist?
227
+ file_map[:pgsql_data][:present]
228
+ end
229
+
226
230
  def sql_dump_files_exist?
227
231
  file_map[:foreman_dump][:present] ||
228
232
  file_map[:candlepin_dump][:present] ||
229
233
  file_map[:pulpcore_dump][:present]
230
234
  end
231
235
 
236
+ def sql_needs_dump_restore?
237
+ !sql_tar_files_exist? && sql_dump_files_exist?
238
+ end
239
+
232
240
  def incremental?
233
241
  !!metadata.fetch('incremental', false)
234
242
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.6.8'.freeze
2
+ VERSION = '1.6.9'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_maintain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.8
4
+ version: 1.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Nečas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-06 00:00:00.000000000 Z
11
+ date: 2024-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -313,11 +313,10 @@ files:
313
313
  - definitions/scenarios/packages.rb
314
314
  - definitions/scenarios/puppet.rb
315
315
  - definitions/scenarios/restore.rb
316
+ - definitions/scenarios/satellite_upgrade.rb
316
317
  - definitions/scenarios/self_upgrade.rb
317
318
  - definitions/scenarios/services.rb
318
319
  - definitions/scenarios/update.rb
319
- - definitions/scenarios/upgrade_to_capsule_6_16.rb
320
- - definitions/scenarios/upgrade_to_satellite_6_16.rb
321
320
  - extras/foreman-maintain.sh
322
321
  - extras/foreman_protector/dnf/foreman-protector.py
323
322
  - extras/foreman_protector/foreman-protector.conf
@@ -1,102 +0,0 @@
1
- module Scenarios::Capsule_6_16
2
- class Abstract < ForemanMaintain::Scenario
3
- def self.upgrade_metadata(&block)
4
- metadata do
5
- tags :upgrade_scenario
6
- confine do
7
- feature(:capsule) &&
8
- (feature(:capsule).current_minor_version == '6.15' || \
9
- ForemanMaintain.upgrade_in_progress == '6.16')
10
- end
11
- instance_eval(&block)
12
- end
13
- end
14
-
15
- def target_version
16
- '6.16'
17
- end
18
- end
19
-
20
- class PreUpgradeCheck < Abstract
21
- upgrade_metadata do
22
- description 'Checks before upgrading to Capsule 6.16'
23
- tags :pre_upgrade_checks
24
- run_strategy :fail_slow
25
- end
26
-
27
- def compose
28
- add_steps(find_checks(:default))
29
- add_steps(find_checks(:pre_upgrade))
30
- add_step(Checks::CheckIpv6Disable)
31
- add_step(Checks::Disk::AvailableSpacePostgresql13)
32
- add_step(Checks::Repositories::Validate.new(:version => '6.16'))
33
- end
34
- end
35
-
36
- class PreMigrations < Abstract
37
- upgrade_metadata do
38
- description 'Procedures before migrating to Capsule 6.16'
39
- tags :pre_migrations
40
- end
41
-
42
- def compose
43
- add_steps(find_procedures(:pre_migrations))
44
- end
45
- end
46
-
47
- class Migrations < Abstract
48
- upgrade_metadata do
49
- description 'Migration scripts to Capsule 6.16'
50
- tags :migrations
51
- end
52
-
53
- def set_context_mapping
54
- context.map(:assumeyes, Procedures::Installer::Run => :assumeyes)
55
- end
56
-
57
- def compose
58
- add_step(Procedures::Repositories::Setup.new(:version => '6.16'))
59
- if el8?
60
- modules_to_switch = ['postgresql:13']
61
- add_step(Procedures::Packages::SwitchModules.new(:module_names => modules_to_switch))
62
- modules_to_enable = ["satellite-capsule:#{el_short_name}"]
63
- add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
64
- end
65
- add_step(Procedures::Packages::Update.new(
66
- :assumeyes => true,
67
- :download_only => true
68
- ))
69
- add_step(Procedures::Service::Stop.new)
70
- add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
71
- add_step_with_context(Procedures::Installer::Run)
72
- end
73
- end
74
-
75
- class PostMigrations < Abstract
76
- upgrade_metadata do
77
- description 'Procedures after migrating to Capsule 6.16'
78
- tags :post_migrations
79
- end
80
-
81
- def compose
82
- add_step(Procedures::RefreshFeatures)
83
- add_step(Procedures::Service::Start.new)
84
- add_steps(find_procedures(:post_migrations))
85
- end
86
- end
87
-
88
- class PostUpgradeChecks < Abstract
89
- upgrade_metadata do
90
- description 'Checks after upgrading to Capsule 6.16'
91
- tags :post_upgrade_checks
92
- run_strategy :fail_slow
93
- end
94
-
95
- def compose
96
- add_steps(find_checks(:default))
97
- add_steps(find_checks(:post_upgrade))
98
- add_step(Procedures::Packages::CheckForReboot)
99
- add_step(Procedures::Pulpcore::ContainerHandleImageMetadata)
100
- end
101
- end
102
- end