foreman_maintain 0.6.0 → 0.6.5

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.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -0
  3. data/definitions/checks/check_hotfix_installed.rb +2 -1
  4. data/definitions/checks/disk/performance.rb +24 -9
  5. data/definitions/checks/foreman/check_corrupted_roles.rb +14 -2
  6. data/definitions/checks/foreman/validate_external_db_version.rb +28 -0
  7. data/definitions/checks/original_assets.rb +1 -0
  8. data/definitions/checks/pulpcore/db_up.rb +29 -0
  9. data/definitions/checks/repositories/check_non_rh_repository.rb +23 -0
  10. data/definitions/checks/repositories/check_upstream_repository.rb +2 -1
  11. data/definitions/checks/repositories/validate.rb +2 -1
  12. data/definitions/features/apache.rb +19 -0
  13. data/definitions/features/dynflow_sidekiq.rb +1 -1
  14. data/definitions/features/foreman_database.rb +5 -3
  15. data/definitions/features/foreman_server.rb +9 -3
  16. data/definitions/features/foreman_tasks.rb +7 -2
  17. data/definitions/features/installer.rb +9 -2
  18. data/definitions/features/instance.rb +5 -2
  19. data/definitions/features/katello.rb +7 -0
  20. data/definitions/features/{pulp3.rb → pulpcore.rb} +9 -3
  21. data/definitions/features/pulpcore_database.rb +39 -0
  22. data/definitions/features/puppet_server.rb +6 -2
  23. data/definitions/features/service.rb +10 -3
  24. data/definitions/features/tar.rb +5 -0
  25. data/definitions/procedures/backup/config_files.rb +3 -0
  26. data/definitions/procedures/backup/metadata.rb +2 -0
  27. data/definitions/procedures/backup/offline/pulpcore_db.rb +57 -0
  28. data/definitions/procedures/backup/online/pulpcore_db.rb +20 -0
  29. data/definitions/procedures/backup/snapshot/logical_volume_confirmation.rb +1 -0
  30. data/definitions/procedures/backup/snapshot/mount_pulpcore_db.rb +48 -0
  31. data/definitions/procedures/content/prepare.rb +2 -2
  32. data/definitions/procedures/content/switchover.rb +22 -0
  33. data/definitions/procedures/hammer_setup.rb +1 -1
  34. data/definitions/procedures/installer/run.rb +3 -1
  35. data/definitions/procedures/installer/upgrade.rb +6 -1
  36. data/definitions/procedures/packages/installer_confirmation.rb +1 -1
  37. data/definitions/procedures/packages/update.rb +1 -1
  38. data/definitions/procedures/packages/update_all_confirmation.rb +24 -0
  39. data/definitions/procedures/pulpcore/migrate.rb +25 -0
  40. data/definitions/procedures/restore/configs.rb +6 -0
  41. data/definitions/procedures/restore/drop_databases.rb +11 -1
  42. data/definitions/procedures/restore/extract_files.rb +1 -0
  43. data/definitions/procedures/restore/pulpcore_dump.rb +30 -0
  44. data/definitions/procedures/restore/regenerate_queues.rb +69 -0
  45. data/definitions/procedures/service/stop.rb +1 -1
  46. data/definitions/scenarios/backup.rb +21 -4
  47. data/definitions/scenarios/content.rb +27 -0
  48. data/definitions/scenarios/packages.rb +38 -14
  49. data/definitions/scenarios/restore.rb +10 -2
  50. data/definitions/scenarios/upgrade_to_capsule_6_7.rb +88 -0
  51. data/definitions/scenarios/upgrade_to_capsule_6_7_z.rb +88 -0
  52. data/definitions/scenarios/upgrade_to_capsule_6_8.rb +88 -0
  53. data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +88 -0
  54. data/definitions/scenarios/upgrade_to_satellite_6_2.rb +13 -5
  55. data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +13 -5
  56. data/definitions/scenarios/upgrade_to_satellite_6_3.rb +13 -5
  57. data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +13 -5
  58. data/definitions/scenarios/upgrade_to_satellite_6_4.rb +13 -5
  59. data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +13 -5
  60. data/definitions/scenarios/upgrade_to_satellite_6_5.rb +13 -5
  61. data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +13 -5
  62. data/definitions/scenarios/upgrade_to_satellite_6_6.rb +13 -5
  63. data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +13 -5
  64. data/definitions/scenarios/upgrade_to_satellite_6_7.rb +13 -5
  65. data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +13 -5
  66. data/definitions/scenarios/upgrade_to_satellite_6_8.rb +88 -0
  67. data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +88 -0
  68. data/extras/foreman_protector/foreman-protector.py +1 -1
  69. data/lib/foreman_maintain.rb +31 -0
  70. data/lib/foreman_maintain/cli.rb +2 -0
  71. data/lib/foreman_maintain/cli/content_command.rb +17 -0
  72. data/lib/foreman_maintain/cli/packages_command.rb +1 -1
  73. data/lib/foreman_maintain/cli/upgrade_command.rb +10 -0
  74. data/lib/foreman_maintain/concerns/base_database.rb +16 -1
  75. data/lib/foreman_maintain/concerns/downstream.rb +14 -10
  76. data/lib/foreman_maintain/feature.rb +4 -0
  77. data/lib/foreman_maintain/package_manager/dnf.rb +11 -5
  78. data/lib/foreman_maintain/package_manager/yum.rb +15 -5
  79. data/lib/foreman_maintain/reporter/cli_reporter.rb +6 -6
  80. data/lib/foreman_maintain/upgrade_runner.rb +20 -26
  81. data/lib/foreman_maintain/utils/backup.rb +62 -62
  82. data/lib/foreman_maintain/utils/disk/io_device.rb +1 -1
  83. data/lib/foreman_maintain/utils/facter.rb +1 -1
  84. data/lib/foreman_maintain/utils/service/abstract.rb +6 -0
  85. data/lib/foreman_maintain/version.rb +1 -1
  86. metadata +184 -165
  87. data/definitions/checks/check_epel_repository.rb +0 -21
@@ -29,6 +29,7 @@ module Procedures::Restore
29
29
  def base_tar
30
30
  {
31
31
  :overwrite => true,
32
+ :absolute_names => true,
32
33
  :listed_incremental => '/dev/null',
33
34
  :command => 'extract',
34
35
  :directory => '/'
@@ -0,0 +1,30 @@
1
+ module Procedures::Restore
2
+ class PulpcoreDump < ForemanMaintain::Procedure
3
+ metadata do
4
+ description 'Restore pulpcore postgresql dump from backup'
5
+ param :backup_dir,
6
+ 'Path to backup directory',
7
+ :required => true
8
+ preparation_steps { Checks::Pulpcore::DBUp.new }
9
+ confine do
10
+ feature(:pulpcore_database)
11
+ end
12
+ end
13
+
14
+ def run
15
+ backup = ForemanMaintain::Utils::Backup.new(@backup_dir)
16
+
17
+ with_spinner('Restoring pulpcore postgresql dump') do |spinner|
18
+ restore_pulpcore_dump(backup, spinner)
19
+ end
20
+ end
21
+
22
+ def restore_pulpcore_dump(backup, spinner)
23
+ if backup.file_map[:pulpcore_dump][:present]
24
+ spinner.update('Restoring pulpcore dump')
25
+ local = feature(:pulpcore_database).local?
26
+ feature(:pulpcore_database).restore_dump(backup.file_map[:pulpcore_dump][:path], local)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,69 @@
1
+ module Procedures::Restore
2
+ class RegenerateQueues < ForemanMaintain::Procedure
3
+ metadata do
4
+ advanced_run false
5
+ description 'Regenerate required activemq and qpidd queues while restoring online backup'
6
+ confine do
7
+ feature(:pulp2)
8
+ end
9
+ end
10
+
11
+ def qpid_router_broker_port
12
+ @qpid_router_broker_port ||= feature(:installer).
13
+ answers['foreman_proxy_content']['qpid_router_broker_port']
14
+ end
15
+
16
+ def qpid_configs
17
+ @qpid_configs ||= {
18
+ 'ssl_cert' => "/etc/pki/katello/certs/#{hostname}-qpid-broker.crt",
19
+ 'ssl_key' => "/etc/pki/katello/private/#{hostname}-qpid-broker.key",
20
+ 'amqps_url' => "amqps://localhost:#{qpid_router_broker_port}"
21
+ }
22
+ end
23
+
24
+ def katello_events
25
+ %w[compliance.created
26
+ entitlement.created
27
+ entitlement.deleted
28
+ pool.created
29
+ pool.deleted]
30
+ end
31
+
32
+ def run
33
+ with_spinner('Resetting the queues') do |spinner|
34
+ regenerate_activemq_queues(spinner)
35
+ regenerate_qpidd_queues(spinner)
36
+ spinner.update('Queues created successfully')
37
+ end
38
+ end
39
+
40
+ def regenerate_activemq_queues(spinner)
41
+ # The activemq queues(/var/lib/candlepin/activemq-artemis) regenerate on tomcat restart.
42
+ # After stopping the tomcat here, service start is triggered from the restore scenario.
43
+ spinner.update('Stopping tomcat service')
44
+ feature(:candlepin).services.select(&:exist?).first.stop
45
+ spinner.update('Recreating activemq queues')
46
+ execute!('rm -rf /var/lib/candlepin/activemq-artemis/')
47
+ end
48
+
49
+ def run_qpid_command(opts)
50
+ execute!("qpid-config --ssl-certificate #{qpid_configs['ssl_cert']} \\
51
+ --ssl-key #{qpid_configs['ssl_key']} -b #{qpid_configs['amqps_url']} #{opts}")
52
+ end
53
+
54
+ def regenerate_qpidd_queues(spinner)
55
+ feature(:service).handle_services(spinner, 'stop', :only => ['qpidd'])
56
+ execute!('rm -rf /var/lib/qpidd/.qpidd/qls')
57
+ spinner.update('Starting qpidd service')
58
+ feature(:service).handle_services(spinner, 'start', :only => ['qpidd'])
59
+ spinner.update('Service qpidd started, waiting 60 seconds to start it completely')
60
+ sleep 60
61
+ spinner.update('Recreating qpidd queues')
62
+ run_qpid_command('add exchange topic event --durable')
63
+ run_qpid_command('add queue katello_event_queue --durable')
64
+ katello_events.each do |event|
65
+ run_qpid_command("bind event katello_event_queue #{event}")
66
+ end
67
+ end
68
+ end
69
+ end
@@ -8,7 +8,7 @@ module Procedures::Service
8
8
  end
9
9
 
10
10
  def run
11
- run_service_action('stop', common_options)
11
+ run_service_action('stop', common_options.merge(:include_sockets => true))
12
12
  end
13
13
  end
14
14
  end
@@ -51,12 +51,15 @@ module ForemanMaintain::Scenarios
51
51
  Procedures::Backup::Online::PgGlobalObjects => :backup_dir,
52
52
  Procedures::Backup::Online::CandlepinDB => :backup_dir,
53
53
  Procedures::Backup::Online::ForemanDB => :backup_dir,
54
+ Procedures::Backup::Online::PulpcoreDB => :backup_dir,
54
55
  Procedures::Backup::Offline::CandlepinDB => :backup_dir,
55
56
  Procedures::Backup::Offline::ForemanDB => :backup_dir,
57
+ Procedures::Backup::Offline::PulpcoreDB => :backup_dir,
56
58
  Procedures::Backup::Offline::Mongo => :backup_dir,
57
59
  Procedures::Backup::Snapshot::LogicalVolumeConfirmation => :backup_dir,
58
60
  Procedures::Backup::Snapshot::MountCandlepinDB => :backup_dir,
59
61
  Procedures::Backup::Snapshot::MountForemanDB => :backup_dir,
62
+ Procedures::Backup::Snapshot::MountPulpcoreDB => :backup_dir,
60
63
  Procedures::Backup::Snapshot::MountMongo => :backup_dir)
61
64
  context.map(:preserve_dir,
62
65
  Checks::Backup::DirectoryReady => :preserve_dir,
@@ -73,15 +76,18 @@ module ForemanMaintain::Scenarios
73
76
  Procedures::Backup::Snapshot::CleanMount => :mount_dir,
74
77
  Procedures::Backup::Snapshot::MountCandlepinDB => :mount_dir,
75
78
  Procedures::Backup::Snapshot::MountForemanDB => :mount_dir,
79
+ Procedures::Backup::Snapshot::MountPulpcoreDB => :mount_dir,
76
80
  Procedures::Backup::Offline::Mongo => :mount_dir,
77
81
  Procedures::Backup::Pulp => :mount_dir,
78
82
  Procedures::Backup::Offline::CandlepinDB => :mount_dir,
79
- Procedures::Backup::Offline::ForemanDB => :mount_dir)
83
+ Procedures::Backup::Offline::ForemanDB => :mount_dir,
84
+ Procedures::Backup::Offline::PulpcoreDB => :mount_dir)
80
85
  context.map(:snapshot_block_size,
81
86
  Procedures::Backup::Snapshot::MountMongo => :block_size,
82
87
  Procedures::Backup::Snapshot::MountPulp => :block_size,
83
88
  Procedures::Backup::Snapshot::MountForemanDB => :block_size,
84
- Procedures::Backup::Snapshot::MountCandlepinDB => :block_size)
89
+ Procedures::Backup::Snapshot::MountCandlepinDB => :block_size,
90
+ Procedures::Backup::Snapshot::MountPulpcoreDB => :block_size)
85
91
  context.map(:skip_pulp_content,
86
92
  Procedures::Backup::Pulp => :skip,
87
93
  Procedures::Backup::Snapshot::LogicalVolumeConfirmation => :skip_pulp,
@@ -135,6 +141,7 @@ module ForemanMaintain::Scenarios
135
141
  Procedures::Backup::Offline::Mongo,
136
142
  Procedures::Backup::Offline::CandlepinDB,
137
143
  Procedures::Backup::Offline::ForemanDB,
144
+ Procedures::Backup::Offline::PulpcoreDB,
138
145
  Procedures::Service::Start,
139
146
  find_procedures(:maintenance_mode_off)
140
147
  )
@@ -150,6 +157,9 @@ module ForemanMaintain::Scenarios
150
157
  if feature(:instance).database_local?(:foreman_database)
151
158
  add_step_with_context(Procedures::Backup::Online::ForemanDB)
152
159
  end
160
+ if feature(:instance).database_local?(:pulpcore_database)
161
+ add_step_with_context(Procedures::Backup::Online::PulpcoreDB)
162
+ end
153
163
  if feature(:instance).database_local?(:mongo)
154
164
  add_step_with_context(Procedures::Backup::Online::Mongo)
155
165
  end
@@ -168,6 +178,7 @@ module ForemanMaintain::Scenarios
168
178
  Procedures::Backup::Snapshot::MountPulp,
169
179
  Procedures::Backup::Snapshot::MountCandlepinDB,
170
180
  Procedures::Backup::Snapshot::MountForemanDB,
181
+ Procedures::Backup::Snapshot::MountPulpcoreDB,
171
182
  Procedures::Service::Start,
172
183
  find_procedures(:maintenance_mode_off),
173
184
  Procedures::Backup::Pulp
@@ -178,6 +189,9 @@ module ForemanMaintain::Scenarios
178
189
  if feature(:instance).database_local?(:foreman_database)
179
190
  add_step_with_context(Procedures::Backup::Offline::ForemanDB)
180
191
  end
192
+ if feature(:instance).database_local?(:pulpcore_database)
193
+ add_step_with_context(Procedures::Backup::Offline::PulpcoreDB)
194
+ end
181
195
  if feature(:instance).database_local?(:mongo)
182
196
  add_step_with_context(Procedures::Backup::Offline::Mongo)
183
197
  end
@@ -186,14 +200,17 @@ module ForemanMaintain::Scenarios
186
200
  # rubocop:enable Metrics/MethodLength
187
201
 
188
202
  def add_online_backup_steps
189
- add_step_with_context(Procedures::Backup::ConfigFiles, :ignore_changed_files => true)
203
+ add_step_with_context(Procedures::Backup::ConfigFiles, :ignore_changed_files => true,
204
+ :online_backup => true)
190
205
  add_step_with_context(Procedures::Backup::Pulp, :ensure_unchanged => true)
191
206
  add_steps_with_context(
192
207
  Procedures::Backup::Online::Mongo,
193
208
  Procedures::Backup::Online::PgGlobalObjects,
194
209
  Procedures::Backup::Online::CandlepinDB,
195
- Procedures::Backup::Online::ForemanDB
210
+ Procedures::Backup::Online::ForemanDB,
211
+ Procedures::Backup::Online::PulpcoreDB
196
212
  )
213
+ add_step_with_context(Procedures::Backup::Metadata, :online_backup => true)
197
214
  end
198
215
 
199
216
  def strategy
@@ -0,0 +1,27 @@
1
+ module ForemanMaintain::Scenarios
2
+ module Content
3
+ class Prepare < ForemanMaintain::Scenario
4
+ metadata do
5
+ label :content_prepare
6
+ description 'Prepare content for Pulp 3'
7
+ manual_detection
8
+ end
9
+
10
+ def compose
11
+ add_step(Procedures::Content::Prepare)
12
+ end
13
+ end
14
+
15
+ class Switchover < ForemanMaintain::Scenario
16
+ metadata do
17
+ label :content_switchover
18
+ description 'Switch support for certain content from Pulp 2 to Pulp 3'
19
+ manual_detection
20
+ end
21
+
22
+ def compose
23
+ add_step(Procedures::Content::Switchover)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,16 @@
1
1
  module ForemanMaintain::Scenarios
2
2
  module Packages
3
+ def self.skip_installer_run?(packages_list)
4
+ packages_list = packages_list.split(',').map(&:strip) if packages_list.is_a?(String)
5
+
6
+ return false unless packages_list.any? { |p| p.include?('foreman_maintain') }
7
+ return true if packages_list.length == 1
8
+
9
+ fm_pkg = ForemanMaintain.main_package_name
10
+ puts "ERROR: install or update '#{fm_pkg}' package individually."
11
+ exit 1
12
+ end
13
+
3
14
  class Status < ForemanMaintain::Scenario
4
15
  metadata do
5
16
  label :packages_status
@@ -45,13 +56,17 @@ module ForemanMaintain::Scenarios
45
56
  end
46
57
 
47
58
  def compose
48
- add_step_with_context(Procedures::Packages::InstallerConfirmation)
49
- add_step_with_context(Procedures::Packages::UnlockVersions)
50
- add_step_with_context(Procedures::Packages::Install,
51
- :force => true, :warn_on_errors => true)
52
- add_step_with_context(Procedures::Installer::Run,
53
- :arguments => '--upgrade --disable-system-checks')
54
- add_step(Procedures::Packages::LockingStatus)
59
+ if Packages.skip_installer_run?(context.get(:packages))
60
+ add_step_with_context(Procedures::Packages::Install,
61
+ :force => true, :warn_on_errors => true)
62
+ else
63
+ add_step_with_context(Procedures::Packages::InstallerConfirmation)
64
+ add_step_with_context(Procedures::Packages::UnlockVersions)
65
+ add_step_with_context(Procedures::Packages::Install,
66
+ :force => true, :warn_on_errors => true)
67
+ add_step_with_context(Procedures::Installer::Upgrade)
68
+ add_step(Procedures::Packages::LockingStatus)
69
+ end
55
70
  end
56
71
 
57
72
  def set_context_mapping
@@ -71,17 +86,26 @@ module ForemanMaintain::Scenarios
71
86
  end
72
87
 
73
88
  def compose
74
- add_step_with_context(Procedures::Packages::InstallerConfirmation)
75
- add_step_with_context(Procedures::Packages::UnlockVersions)
76
- add_step_with_context(Procedures::Packages::Update, :force => true, :warn_on_errors => true)
77
- add_step_with_context(Procedures::Installer::Run,
78
- :arguments => '--upgrade --disable-system-checks')
79
- add_step(Procedures::Packages::LockingStatus)
89
+ if Packages.skip_installer_run?(context.get(:packages))
90
+ add_step_with_context(Procedures::Packages::Update,
91
+ :force => true, :warn_on_errors => true)
92
+ else
93
+ add_steps_with_context(
94
+ Procedures::Packages::UpdateAllConfirmation,
95
+ Procedures::Packages::InstallerConfirmation,
96
+ Procedures::Packages::UnlockVersions
97
+ )
98
+ add_step_with_context(Procedures::Packages::Update,
99
+ :force => true, :warn_on_errors => true)
100
+ add_step_with_context(Procedures::Installer::Upgrade)
101
+ add_step(Procedures::Packages::LockingStatus)
102
+ end
80
103
  end
81
104
 
82
105
  def set_context_mapping
83
106
  context.map(:packages,
84
- Procedures::Packages::Update => :packages)
107
+ Procedures::Packages::Update => :packages,
108
+ Procedures::Packages::UpdateAllConfirmation => :packages)
85
109
  context.map(:assumeyes,
86
110
  Procedures::Packages::Update => :assumeyes)
87
111
  end
@@ -36,14 +36,18 @@ module ForemanMaintain::Scenarios
36
36
  end
37
37
  restore_mongo_dump(backup)
38
38
  add_steps_with_context(Procedures::Pulp::Migrate,
39
- Procedures::Service::Start,
39
+ Procedures::Pulpcore::Migrate)
40
+
41
+ add_steps_with_context(Procedures::Restore::RegenerateQueues) if backup.online_backup?
42
+ add_steps_with_context(Procedures::Service::Start,
40
43
  Procedures::Service::DaemonReload)
41
44
  end
42
45
  # rubocop:enable Metrics/MethodLength,Metrics/AbcSize
43
46
 
44
47
  def drop_dbs(backup)
45
48
  if backup.file_map[:candlepin_dump][:present] ||
46
- backup.file_map[:foreman_dump][:present]
49
+ backup.file_map[:foreman_dump][:present] ||
50
+ (feature(:pulpcore) && backup.file_map[:pulpcore_dump][:present])
47
51
  add_steps_with_context(Procedures::Restore::DropDatabases)
48
52
  end
49
53
  end
@@ -58,6 +62,9 @@ module ForemanMaintain::Scenarios
58
62
  if backup.file_map[:foreman_dump][:present]
59
63
  add_steps_with_context(Procedures::Restore::ForemanDump)
60
64
  end
65
+ if feature(:pulpcore) && backup.file_map[:pulpcore_dump][:present]
66
+ add_steps_with_context(Procedures::Restore::PulpcoreDump)
67
+ end
61
68
  end
62
69
 
63
70
  def restore_mongo_dump(backup)
@@ -83,6 +90,7 @@ module ForemanMaintain::Scenarios
83
90
  Procedures::Restore::PgGlobalObjects => :backup_dir,
84
91
  Procedures::Restore::CandlepinDump => :backup_dir,
85
92
  Procedures::Restore::ForemanDump => :backup_dir,
93
+ Procedures::Restore::PulpcoreDump => :backup_dir,
86
94
  Procedures::Restore::ExtractFiles => :backup_dir,
87
95
  Procedures::Restore::MongoDump => :backup_dir)
88
96
 
@@ -0,0 +1,88 @@
1
+ module Scenarios::Capsule_6_7
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.6' || \
9
+ ForemanMaintain.upgrade_in_progress == '6.7')
10
+ end
11
+ instance_eval(&block)
12
+ end
13
+ end
14
+
15
+ def target_version
16
+ '6.7'
17
+ end
18
+ end
19
+
20
+ class PreUpgradeCheck < Abstract
21
+ upgrade_metadata do
22
+ description 'Checks before upgrading to Capsule 6.7'
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::Repositories::Validate.new(:version => '6.7'))
31
+ end
32
+ end
33
+
34
+ class PreMigrations < Abstract
35
+ upgrade_metadata do
36
+ description 'Procedures before migrating to Capsule 6.7'
37
+ tags :pre_migrations
38
+ end
39
+
40
+ def compose
41
+ add_steps(find_procedures(:pre_migrations))
42
+ add_step(Procedures::Service::Stop.new)
43
+ end
44
+ end
45
+
46
+ class Migrations < Abstract
47
+ upgrade_metadata do
48
+ description 'Migration scripts to Capsule 6.7'
49
+ tags :migrations
50
+ end
51
+
52
+ def set_context_mapping
53
+ context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
54
+ end
55
+
56
+ def compose
57
+ add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
58
+ add_step(Procedures::Packages::UnlockVersions.new)
59
+ add_step(Procedures::Packages::Update.new(:assumeyes => true))
60
+ add_step_with_context(Procedures::Installer::Upgrade)
61
+ end
62
+ end
63
+
64
+ class PostMigrations < Abstract
65
+ upgrade_metadata do
66
+ description 'Procedures after migrating to Capsule 6.7'
67
+ tags :post_migrations
68
+ end
69
+
70
+ def compose
71
+ add_step(Procedures::Service::Start.new)
72
+ add_steps(find_procedures(:post_migrations))
73
+ end
74
+ end
75
+
76
+ class PostUpgradeChecks < Abstract
77
+ upgrade_metadata do
78
+ description 'Checks after upgrading to Capsule 6.7'
79
+ tags :post_upgrade_checks
80
+ run_strategy :fail_slow
81
+ end
82
+
83
+ def compose
84
+ add_steps(find_checks(:default))
85
+ add_steps(find_checks(:post_upgrade))
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,88 @@
1
+ module Scenarios::Capsule_6_7_z
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.7' || \
9
+ ForemanMaintain.upgrade_in_progress == '6.7.z')
10
+ end
11
+ instance_eval(&block)
12
+ end
13
+ end
14
+
15
+ def target_version
16
+ '6.7.z'
17
+ end
18
+ end
19
+
20
+ class PreUpgradeCheck < Abstract
21
+ upgrade_metadata do
22
+ description 'Checks before upgrading to Capsule 6.7.z'
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::Repositories::Validate.new(:version => '6.7'))
31
+ end
32
+ end
33
+
34
+ class PreMigrations < Abstract
35
+ upgrade_metadata do
36
+ description 'Procedures before migrating to Capsule 6.7.z'
37
+ tags :pre_migrations
38
+ end
39
+
40
+ def compose
41
+ add_steps(find_procedures(:pre_migrations))
42
+ add_step(Procedures::Service::Stop.new)
43
+ end
44
+ end
45
+
46
+ class Migrations < Abstract
47
+ upgrade_metadata do
48
+ description 'Migration scripts to Capsule 6.7.z'
49
+ tags :migrations
50
+ end
51
+
52
+ def set_context_mapping
53
+ context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
54
+ end
55
+
56
+ def compose
57
+ add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
58
+ add_step(Procedures::Packages::UnlockVersions.new)
59
+ add_step(Procedures::Packages::Update.new(:assumeyes => true))
60
+ add_step_with_context(Procedures::Installer::Upgrade)
61
+ end
62
+ end
63
+
64
+ class PostMigrations < Abstract
65
+ upgrade_metadata do
66
+ description 'Procedures after migrating to Capsule 6.7.z'
67
+ tags :post_migrations
68
+ end
69
+
70
+ def compose
71
+ add_step(Procedures::Service::Start.new)
72
+ add_steps(find_procedures(:post_migrations))
73
+ end
74
+ end
75
+
76
+ class PostUpgradeChecks < Abstract
77
+ upgrade_metadata do
78
+ description 'Checks after upgrading to Capsule 6.7.z'
79
+ tags :post_upgrade_checks
80
+ run_strategy :fail_slow
81
+ end
82
+
83
+ def compose
84
+ add_steps(find_checks(:default))
85
+ add_steps(find_checks(:post_upgrade))
86
+ end
87
+ end
88
+ end