foreman_maintain 0.6.1 → 0.6.6
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 +4 -4
- data/README.md +4 -0
- data/definitions/checks/check_hotfix_installed.rb +2 -1
- data/definitions/checks/disk/performance.rb +24 -9
- data/definitions/checks/foreman/check_corrupted_roles.rb +14 -2
- data/definitions/checks/foreman/validate_external_db_version.rb +28 -0
- data/definitions/checks/foreman_proxy/check_tftp_storage.rb +52 -0
- data/definitions/checks/original_assets.rb +1 -0
- data/definitions/checks/repositories/check_non_rh_repository.rb +23 -0
- data/definitions/checks/repositories/check_upstream_repository.rb +2 -1
- data/definitions/checks/repositories/validate.rb +2 -1
- data/definitions/features/apache.rb +19 -0
- data/definitions/features/capsule.rb +2 -1
- data/definitions/features/dynflow_sidekiq.rb +1 -1
- data/definitions/features/foreman_proxy.rb +30 -5
- data/definitions/features/foreman_server.rb +10 -4
- data/definitions/features/installer.rb +9 -2
- data/definitions/features/katello.rb +7 -0
- data/definitions/features/puppet_server.rb +6 -2
- data/definitions/features/service.rb +10 -3
- data/definitions/procedures/backup/config_files.rb +3 -0
- data/definitions/procedures/backup/metadata.rb +2 -0
- data/definitions/procedures/content/prepare.rb +1 -1
- data/definitions/procedures/content/switchover.rb +9 -4
- data/definitions/procedures/hammer_setup.rb +1 -1
- data/definitions/procedures/installer/run.rb +3 -1
- data/definitions/procedures/installer/upgrade.rb +6 -1
- data/definitions/procedures/packages/update.rb +1 -1
- data/definitions/procedures/restore/configs.rb +6 -0
- data/definitions/procedures/restore/regenerate_queues.rb +69 -0
- data/definitions/procedures/service/stop.rb +1 -1
- data/definitions/scenarios/backup.rb +3 -1
- data/definitions/scenarios/content.rb +27 -0
- data/definitions/scenarios/packages.rb +36 -16
- data/definitions/scenarios/restore.rb +17 -2
- data/definitions/scenarios/upgrade_to_capsule_6_8.rb +88 -0
- data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +88 -0
- data/definitions/scenarios/upgrade_to_satellite_6_2.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_3.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_4.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_5.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_6.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_7.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_8.rb +88 -0
- data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +88 -0
- data/lib/foreman_maintain.rb +31 -0
- data/lib/foreman_maintain/cli.rb +2 -0
- data/lib/foreman_maintain/cli/content_command.rb +17 -0
- data/lib/foreman_maintain/cli/restore_command.rb +2 -1
- data/lib/foreman_maintain/cli/upgrade_command.rb +10 -0
- data/lib/foreman_maintain/concerns/base_database.rb +11 -0
- data/lib/foreman_maintain/concerns/downstream.rb +14 -10
- data/lib/foreman_maintain/feature.rb +4 -0
- data/lib/foreman_maintain/package_manager/dnf.rb +11 -5
- data/lib/foreman_maintain/package_manager/yum.rb +15 -5
- data/lib/foreman_maintain/reporter/cli_reporter.rb +3 -3
- data/lib/foreman_maintain/upgrade_runner.rb +20 -26
- data/lib/foreman_maintain/utils/backup.rb +4 -0
- data/lib/foreman_maintain/utils/facter.rb +1 -1
- data/lib/foreman_maintain/utils/service/abstract.rb +6 -0
- data/lib/foreman_maintain/version.rb +1 -1
- metadata +14 -4
- data/definitions/checks/check_epel_repository.rb +0 -21
@@ -52,6 +52,13 @@ class Features::Katello < ForemanMaintain::Feature
|
|
52
52
|
end
|
53
53
|
# rubocop:enable Metrics/MethodLength
|
54
54
|
|
55
|
+
def config_files_exclude_for_online
|
56
|
+
[
|
57
|
+
'/var/lib/qpidd',
|
58
|
+
'/var/lib/candlepin/activemq-artemis'
|
59
|
+
]
|
60
|
+
end
|
61
|
+
|
55
62
|
private
|
56
63
|
|
57
64
|
def installer_scenario_answers
|
@@ -29,7 +29,7 @@ class Features::PuppetServer < ForemanMaintain::Feature
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def puppet_version
|
32
|
-
version(execute!(
|
32
|
+
version(execute!("#{puppet_path} --version"))
|
33
33
|
end
|
34
34
|
|
35
35
|
def find_empty_cacert_request_files
|
@@ -56,6 +56,10 @@ class Features::PuppetServer < ForemanMaintain::Feature
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def puppet_ssldir_path
|
59
|
-
execute!(
|
59
|
+
execute!("#{puppet_path} config print ssldir")
|
60
|
+
end
|
61
|
+
|
62
|
+
def puppet_path
|
63
|
+
'/opt/puppetlabs/bin/puppet'
|
60
64
|
end
|
61
65
|
end
|
@@ -27,7 +27,7 @@ class Features::Service < ForemanMaintain::Feature
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def filtered_services(options)
|
30
|
-
service_list = existing_services
|
30
|
+
service_list = include_unregistered_services(existing_services, options[:include])
|
31
31
|
service_list = filter_services(service_list, options)
|
32
32
|
raise 'No services found matching your parameters' unless service_list.any?
|
33
33
|
|
@@ -99,9 +99,14 @@ class Features::Service < ForemanMaintain::Feature
|
|
99
99
|
%w[start stop restart status enable disable].include?(action)
|
100
100
|
end
|
101
101
|
|
102
|
-
def
|
103
|
-
service_list
|
102
|
+
def extend_service_list_with_sockets(service_list, options)
|
103
|
+
return service_list unless options[:include_sockets]
|
104
|
+
|
105
|
+
socket_list = service_list.map(&:socket).compact.select(&:exist?)
|
106
|
+
service_list + socket_list
|
107
|
+
end
|
104
108
|
|
109
|
+
def filter_services(service_list, options)
|
105
110
|
if options[:only] && options[:only].any?
|
106
111
|
service_list = service_list.select do |service|
|
107
112
|
options[:only].any? { |opt| service.matches?(opt) }
|
@@ -112,6 +117,8 @@ class Features::Service < ForemanMaintain::Feature
|
|
112
117
|
if options[:exclude] && options[:exclude].any?
|
113
118
|
service_list = service_list.reject { |service| options[:exclude].include?(service.name) }
|
114
119
|
end
|
120
|
+
|
121
|
+
service_list = extend_service_list_with_sockets(service_list, options)
|
115
122
|
service_list.sort
|
116
123
|
end
|
117
124
|
|
@@ -17,6 +17,8 @@ module Procedures::Backup
|
|
17
17
|
:array => true, :default => ['all']
|
18
18
|
param :ignore_changed_files, 'Should packing tar ignore changed files',
|
19
19
|
:flag => true, :default => false
|
20
|
+
param :online_backup, 'The config files are being prepared for an online backup',
|
21
|
+
:flag => true, :default => false
|
20
22
|
end
|
21
23
|
|
22
24
|
# rubocop:disable Metrics/MethodLength
|
@@ -55,6 +57,7 @@ module Procedures::Backup
|
|
55
57
|
|
56
58
|
configs += feature.config_files
|
57
59
|
exclude_configs += feature.config_files_to_exclude
|
60
|
+
exclude_configs += feature.config_files_exclude_for_online if @online_backup
|
58
61
|
end
|
59
62
|
|
60
63
|
if feature(:foreman_proxy)
|
@@ -6,6 +6,7 @@ module Procedures::Backup
|
|
6
6
|
preparation_steps { Checks::Foreman::DBUp.new if feature(:foreman_server) }
|
7
7
|
param :backup_dir, 'Directory where to backup to', :required => true
|
8
8
|
param :incremental_dir, 'Changes since specified backup only'
|
9
|
+
param :online_backup, 'Select for online backup', :flag => true, :default => false
|
9
10
|
end
|
10
11
|
|
11
12
|
def run
|
@@ -16,6 +17,7 @@ module Procedures::Backup
|
|
16
17
|
metadata['proxy_features'] = proxy_feature_list(spinner) || []
|
17
18
|
metadata['rpms'] = rpms(spinner)
|
18
19
|
metadata['incremental'] = @incremental_dir || false
|
20
|
+
metadata['online'] = @online_backup
|
19
21
|
save_metadata(metadata, spinner)
|
20
22
|
end
|
21
23
|
end
|
@@ -6,12 +6,17 @@ module Procedures::Content
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def run
|
9
|
-
|
10
|
-
execute!('foreman-rake katello:
|
11
|
-
|
9
|
+
puts 'Performing final content migration before switching content'
|
10
|
+
puts execute!('foreman-rake katello:pulp3_migration')
|
11
|
+
puts 'Performing a check to verify everything that is needed has been migrated'
|
12
|
+
puts execute!('foreman-rake katello:pulp3_post_migration_check')
|
13
|
+
puts 'Switching specified content over to pulp 3'
|
14
|
+
puts execute!('foreman-rake katello:pulp3_content_switchover')
|
15
|
+
puts 'Re-running the installer to switch specified content over to pulp3'
|
12
16
|
args = ['--foreman-proxy-content-proxy-pulp-isos-to-pulpcore=true',
|
13
17
|
'--katello-use-pulp-2-for-file=false',
|
14
|
-
'--katello-use-pulp-2-for-docker=false'
|
18
|
+
'--katello-use-pulp-2-for-docker=false',
|
19
|
+
'--katello-use-pulp-2-for-yum=false']
|
15
20
|
feature(:installer).run(args.join(' '))
|
16
21
|
end
|
17
22
|
end
|
@@ -5,7 +5,7 @@ class Procedures::HammerSetup < ForemanMaintain::Procedure
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def run
|
8
|
-
if feature(:foreman_server) &&
|
8
|
+
if feature(:foreman_server) && feature(:foreman_server).services_running?
|
9
9
|
puts 'Configuring Hammer CLI...'
|
10
10
|
result = feature(:hammer).setup_admin_access
|
11
11
|
logger.info 'Hammer was configured successfully.' if result
|
@@ -2,10 +2,12 @@ module Procedures::Installer
|
|
2
2
|
class Run < ForemanMaintain::Procedure
|
3
3
|
metadata do
|
4
4
|
param :arguments, 'Arguments passed to installer'
|
5
|
+
param :assumeyes, 'Do not ask for confirmation'
|
5
6
|
end
|
6
7
|
|
7
8
|
def run
|
8
|
-
|
9
|
+
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
10
|
+
feature(:installer).run(@arguments, :interactive => !assumeyes_val)
|
9
11
|
end
|
10
12
|
|
11
13
|
def description
|
@@ -1,7 +1,12 @@
|
|
1
1
|
module Procedures::Installer
|
2
2
|
class Upgrade < ForemanMaintain::Procedure
|
3
|
+
metadata do
|
4
|
+
param :assumeyes, 'Do not ask for confirmation'
|
5
|
+
end
|
6
|
+
|
3
7
|
def run
|
4
|
-
|
8
|
+
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
9
|
+
feature(:installer).run(@arguments, :interactive => !assumeyes_val)
|
5
10
|
end
|
6
11
|
end
|
7
12
|
end
|
@@ -10,7 +10,7 @@ module Procedures::Packages
|
|
10
10
|
|
11
11
|
def run
|
12
12
|
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
13
|
-
package_manager.clean_cache
|
13
|
+
package_manager.clean_cache(:assumeyes => assumeyes_val)
|
14
14
|
packages_action(:update, @packages, :assumeyes => assumeyes_val)
|
15
15
|
rescue ForemanMaintain::Error::ExecutionError => e
|
16
16
|
if @warn_on_errors
|
@@ -19,10 +19,15 @@ module Procedures::Restore
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
# rubocop:disable Metrics/MethodLength
|
22
23
|
def restore_configs(backup)
|
23
24
|
exclude = ForemanMaintain.available_features.each_with_object([]) do |feat, cfgs|
|
25
|
+
if backup.online_backup?
|
26
|
+
feat.config_files_exclude_for_online.each { |f| cfgs << f.gsub(%r{^/}, '') }
|
27
|
+
end
|
24
28
|
feat.config_files_to_exclude.each { |f| cfgs << f.gsub(%r{^/}, '') }
|
25
29
|
end
|
30
|
+
|
26
31
|
tar_options = {
|
27
32
|
:overwrite => true,
|
28
33
|
:listed_incremental => '/dev/null',
|
@@ -35,6 +40,7 @@ module Procedures::Restore
|
|
35
40
|
|
36
41
|
feature(:tar).run(tar_options)
|
37
42
|
end
|
43
|
+
# rubocop:enable Metrics/MethodLength
|
38
44
|
|
39
45
|
def reload_configs
|
40
46
|
feature(:mongo).reload_db_config if feature(:mongo)
|
@@ -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
|
@@ -200,7 +200,8 @@ module ForemanMaintain::Scenarios
|
|
200
200
|
# rubocop:enable Metrics/MethodLength
|
201
201
|
|
202
202
|
def add_online_backup_steps
|
203
|
-
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)
|
204
205
|
add_step_with_context(Procedures::Backup::Pulp, :ensure_unchanged => true)
|
205
206
|
add_steps_with_context(
|
206
207
|
Procedures::Backup::Online::Mongo,
|
@@ -209,6 +210,7 @@ module ForemanMaintain::Scenarios
|
|
209
210
|
Procedures::Backup::Online::ForemanDB,
|
210
211
|
Procedures::Backup::Online::PulpcoreDB
|
211
212
|
)
|
213
|
+
add_step_with_context(Procedures::Backup::Metadata, :online_backup => true)
|
212
214
|
end
|
213
215
|
|
214
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
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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,15 +86,20 @@ module ForemanMaintain::Scenarios
|
|
71
86
|
end
|
72
87
|
|
73
88
|
def compose
|
74
|
-
|
75
|
-
Procedures::Packages::
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
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
|
83
103
|
end
|
84
104
|
|
85
105
|
def set_context_mapping
|
@@ -20,6 +20,7 @@ module ForemanMaintain::Scenarios
|
|
20
20
|
Checks::Restore::ValidateHostname,
|
21
21
|
Procedures::Selinux::SetFileSecurity,
|
22
22
|
Procedures::Restore::Configs)
|
23
|
+
add_step_with_context(Procedures::Crond::Stop) if feature(:cron)
|
23
24
|
unless backup.incremental?
|
24
25
|
add_steps_with_context(Procedures::Restore::EnsureMongoEngineMatches,
|
25
26
|
Procedures::Restore::InstallerReset)
|
@@ -36,9 +37,12 @@ module ForemanMaintain::Scenarios
|
|
36
37
|
end
|
37
38
|
restore_mongo_dump(backup)
|
38
39
|
add_steps_with_context(Procedures::Pulp::Migrate,
|
39
|
-
Procedures::Pulpcore::Migrate
|
40
|
-
|
40
|
+
Procedures::Pulpcore::Migrate)
|
41
|
+
|
42
|
+
add_steps_with_context(Procedures::Restore::RegenerateQueues) if backup.online_backup?
|
43
|
+
add_steps_with_context(Procedures::Service::Start,
|
41
44
|
Procedures::Service::DaemonReload)
|
45
|
+
add_step_with_context(Procedures::Crond::Start) if feature(:cron)
|
42
46
|
end
|
43
47
|
# rubocop:enable Metrics/MethodLength,Metrics/AbcSize
|
44
48
|
|
@@ -96,4 +100,15 @@ module ForemanMaintain::Scenarios
|
|
96
100
|
Procedures::Selinux::SetFileSecurity => :incremental_backup)
|
97
101
|
end
|
98
102
|
end
|
103
|
+
|
104
|
+
class RestoreRescue < ForemanMaintain::Scenario
|
105
|
+
metadata do
|
106
|
+
description 'Resuce Restore backup'
|
107
|
+
manual_detection
|
108
|
+
end
|
109
|
+
|
110
|
+
def compose
|
111
|
+
add_step_with_context(Procedures::Crond::Stop) if feature(:cron)
|
112
|
+
end
|
113
|
+
end
|
99
114
|
end
|