foreman_maintain 0.6.16 → 0.7.0
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 +2 -2
- data/definitions/checks/package_manager/yum/validate_yum_config.rb +51 -0
- data/definitions/features/candlepin.rb +0 -4
- data/definitions/features/dynflow_sidekiq.rb +4 -7
- data/definitions/features/pulpcore.rb +23 -6
- data/definitions/procedures/backup/accessibility_confirmation.rb +1 -1
- data/definitions/procedures/backup/online/safety_confirmation.rb +1 -1
- data/definitions/procedures/backup/snapshot/logical_volume_confirmation.rb +1 -1
- data/definitions/procedures/content/migration_stats.rb +12 -0
- data/definitions/procedures/content/prepare.rb +0 -5
- data/definitions/procedures/content/prepare_abort.rb +12 -0
- data/definitions/procedures/content/switchover.rb +1 -1
- data/definitions/procedures/packages/installer_confirmation.rb +1 -1
- data/definitions/procedures/packages/update_all_confirmation.rb +1 -1
- data/definitions/procedures/prep_6_10_upgrade.rb +31 -0
- data/definitions/procedures/restore/confirmation.rb +1 -1
- data/definitions/procedures/restore/installer_reset.rb +10 -1
- data/definitions/procedures/service/list.rb +2 -12
- data/definitions/scenarios/content.rb +50 -3
- data/definitions/scenarios/prep_6_10_upgrade.rb +13 -0
- data/definitions/scenarios/upgrade_to_capsule_6_9.rb +88 -0
- data/definitions/scenarios/upgrade_to_capsule_6_9_z.rb +88 -0
- data/definitions/scenarios/upgrade_to_satellite_6_9.rb +90 -0
- data/definitions/scenarios/upgrade_to_satellite_6_9_z.rb +89 -0
- data/lib/foreman_maintain.rb +1 -3
- data/lib/foreman_maintain/cli.rb +9 -0
- data/lib/foreman_maintain/cli/content_command.rb +17 -2
- data/lib/foreman_maintain/cli/upgrade_command.rb +0 -3
- data/lib/foreman_maintain/concerns/downstream.rb +4 -0
- data/lib/foreman_maintain/reporter.rb +18 -13
- data/lib/foreman_maintain/reporter/cli_reporter.rb +18 -9
- data/lib/foreman_maintain/runner.rb +6 -4
- data/lib/foreman_maintain/scenario.rb +4 -0
- data/lib/foreman_maintain/utils/disk/io_device.rb +0 -4
- data/lib/foreman_maintain/utils/service/systemd.rb +12 -3
- data/lib/foreman_maintain/version.rb +1 -1
- metadata +11 -5
- data/definitions/checks/disk/available_space_candlepin.rb +0 -27
- data/definitions/checks/yum_exclude.rb +0 -21
- data/lib/foreman_maintain/concerns/primary_checks.rb +0 -23
@@ -22,12 +22,13 @@ module ForemanMaintain
|
|
22
22
|
|
23
23
|
def after_scenario_finishes(_scenario); end
|
24
24
|
|
25
|
-
def on_next_steps(steps)
|
25
|
+
def on_next_steps(steps, run_strategy = :fail_fast)
|
26
26
|
return if steps.empty?
|
27
|
+
|
27
28
|
if steps.size > 1
|
28
|
-
multiple_steps_decision(steps)
|
29
|
+
multiple_steps_decision(steps, run_strategy)
|
29
30
|
else
|
30
|
-
single_step_decision(steps.first)
|
31
|
+
single_step_decision(steps.first, run_strategy)
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
@@ -46,17 +47,19 @@ module ForemanMaintain
|
|
46
47
|
end
|
47
48
|
|
48
49
|
# simple yes/no question, returns :yes, :no or :quit
|
49
|
-
|
50
|
-
|
51
|
-
|
50
|
+
# rubocop:disable Metrics/LineLength
|
51
|
+
def ask_decision(message, actions_msg: 'y(yes), n(no), q(quit)', assumeyes: assumeyes?, run_strategy: :fail_fast)
|
52
|
+
actions_msg = 'y(yes), n(no)' if run_strategy == :fail_slow
|
52
53
|
if assumeyes
|
53
54
|
print("#{message} (assuming yes)")
|
54
55
|
return :yes
|
55
56
|
end
|
57
|
+
|
56
58
|
until_valid_decision do
|
57
|
-
filter_decision(ask("#{message}, [
|
59
|
+
filter_decision(ask("#{message}, [#{actions_msg}]"))
|
58
60
|
end
|
59
61
|
end
|
62
|
+
# rubocop:enable Metrics/LineLength
|
60
63
|
|
61
64
|
def assumeyes=(assume)
|
62
65
|
@assumeyes = !!assume
|
@@ -64,8 +67,8 @@ module ForemanMaintain
|
|
64
67
|
|
65
68
|
private
|
66
69
|
|
67
|
-
def single_step_decision(step)
|
68
|
-
answer = ask_decision("Continue with step [#{step.description}]?")
|
70
|
+
def single_step_decision(step, run_strategy)
|
71
|
+
answer = ask_decision("Continue with step [#{step.description}]?", run_strategy: run_strategy)
|
69
72
|
if answer == :yes
|
70
73
|
step
|
71
74
|
else
|
@@ -73,12 +76,12 @@ module ForemanMaintain
|
|
73
76
|
end
|
74
77
|
end
|
75
78
|
|
76
|
-
def multiple_steps_decision(steps)
|
79
|
+
def multiple_steps_decision(steps, run_strategy)
|
77
80
|
puts 'There are multiple steps to proceed:'
|
78
81
|
steps.each_with_index do |step, index|
|
79
82
|
puts "#{index + 1}) #{step.description}"
|
80
83
|
end
|
81
|
-
ask_to_select('Select step to continue', steps,
|
84
|
+
ask_to_select('Select step to continue', steps, run_strategy)
|
82
85
|
end
|
83
86
|
|
84
87
|
def filter_decision(answer)
|
@@ -90,13 +93,15 @@ module ForemanMaintain
|
|
90
93
|
end
|
91
94
|
|
92
95
|
# rubocop:disable Metrics/MethodLength
|
93
|
-
def ask_to_select(message, steps)
|
96
|
+
def ask_to_select(message, steps, run_strategy)
|
94
97
|
if assumeyes?
|
95
98
|
puts('(assuming first option)')
|
96
99
|
return steps.first
|
97
100
|
end
|
98
101
|
until_valid_decision do
|
99
|
-
|
102
|
+
actions = run_strategy == :fail_slow ? 'n(next)' : 'n(next), q(quit)'
|
103
|
+
|
104
|
+
answer = ask("#{message}, [#{actions}]")
|
100
105
|
if answer =~ /^\d+$/ && (answer.to_i - 1) < steps.size
|
101
106
|
steps[answer.to_i - 1]
|
102
107
|
else
|
@@ -167,8 +167,9 @@ module ForemanMaintain
|
|
167
167
|
@assumeyes
|
168
168
|
end
|
169
169
|
|
170
|
-
def single_step_decision(step)
|
171
|
-
answer = ask_decision("Continue with step [#{step.runtime_message}]?"
|
170
|
+
def single_step_decision(step, run_strategy)
|
171
|
+
answer = ask_decision("Continue with step [#{step.runtime_message}]?",
|
172
|
+
run_strategy: run_strategy)
|
172
173
|
if answer == :yes
|
173
174
|
step
|
174
175
|
else
|
@@ -176,25 +177,28 @@ module ForemanMaintain
|
|
176
177
|
end
|
177
178
|
end
|
178
179
|
|
179
|
-
def multiple_steps_decision(steps)
|
180
|
+
def multiple_steps_decision(steps, run_strategy)
|
180
181
|
puts 'There are multiple steps to proceed:'
|
181
182
|
steps.each_with_index do |step, index|
|
182
183
|
puts "#{index + 1}) #{step.runtime_message}"
|
183
184
|
end
|
184
|
-
ask_to_select('Select step to continue', steps,
|
185
|
+
ask_to_select('Select step to continue', steps, run_strategy)
|
185
186
|
end
|
186
187
|
|
187
|
-
|
188
|
+
# rubocop:disable Metrics/LineLength
|
189
|
+
def ask_decision(message, actions_msg: 'y(yes), n(no), q(quit)', ignore_assumeyes: false, run_strategy: :fail_fast)
|
190
|
+
actions_msg = 'y(yes), n(no)' if run_strategy == :fail_slow
|
188
191
|
if !ignore_assumeyes && assumeyes?
|
189
192
|
print("#{message} (assuming yes)\n")
|
190
193
|
return :yes
|
191
194
|
end
|
192
195
|
until_valid_decision do
|
193
|
-
filter_decision(ask("#{message}, [#{
|
196
|
+
filter_decision(ask("#{message}, [#{actions_msg}]"))
|
194
197
|
end
|
195
198
|
ensure
|
196
199
|
clear_line
|
197
200
|
end
|
201
|
+
# rubocop:enable Metrics/LineLength
|
198
202
|
|
199
203
|
def filter_decision(answer)
|
200
204
|
decision = nil
|
@@ -206,13 +210,15 @@ module ForemanMaintain
|
|
206
210
|
end
|
207
211
|
|
208
212
|
# rubocop:disable Metrics/MethodLength
|
209
|
-
def ask_to_select(message, steps)
|
213
|
+
def ask_to_select(message, steps, run_strategy)
|
210
214
|
if assumeyes?
|
211
215
|
puts('(assuming first option)')
|
212
216
|
return steps.first
|
213
217
|
end
|
218
|
+
|
214
219
|
until_valid_decision do
|
215
|
-
|
220
|
+
actions = run_strategy == :fail_slow ? 'n(next)' : 'n(next), q(quit)'
|
221
|
+
answer = ask("#{message}, [#{actions}]")
|
216
222
|
if answer =~ /^\d+$/ && (answer.to_i - 1) < steps.size
|
217
223
|
steps[answer.to_i - 1]
|
218
224
|
else
|
@@ -277,6 +283,7 @@ module ForemanMaintain
|
|
277
283
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
278
284
|
def scenario_failure_message(scenario)
|
279
285
|
return if scenario.passed? && !scenario.warning?
|
286
|
+
|
280
287
|
message = []
|
281
288
|
message << <<-MESSAGE.strip_heredoc
|
282
289
|
Scenario [#{scenario.description}] failed.
|
@@ -293,13 +300,15 @@ module ForemanMaintain
|
|
293
300
|
end
|
294
301
|
|
295
302
|
steps_with_error = scenario.steps_with_error(:whitelisted => false)
|
303
|
+
steps_with_skipped = scenario.steps_with_skipped(:whitelisted => true)
|
304
|
+
steps_to_whitelist = steps_with_error + steps_with_skipped
|
296
305
|
unless steps_with_error.empty?
|
297
306
|
message << format(<<-MESSAGE.strip_heredoc, format_steps(steps_with_error, "\n", 2))
|
298
307
|
The following steps ended up in failing state:
|
299
308
|
|
300
309
|
%s
|
301
310
|
MESSAGE
|
302
|
-
whitelist_labels =
|
311
|
+
whitelist_labels = steps_to_whitelist.map(&:label_dashed).join(',')
|
303
312
|
recommend << format(<<-MESSAGE.strip_heredoc, whitelist_labels)
|
304
313
|
Resolve the failed steps and rerun
|
305
314
|
the command. In case the failures are false positives,
|
@@ -70,7 +70,8 @@ module ForemanMaintain
|
|
70
70
|
:quit
|
71
71
|
elsif @last_scenario.steps_with_warning(:whitelisted => false).any?
|
72
72
|
@last_scenario_continuation_confirmed = true
|
73
|
-
reporter.ask_decision("Continue with [#{scenario.description}]"
|
73
|
+
reporter.ask_decision("Continue with [#{scenario.description}]",
|
74
|
+
run_strategy: scenario.run_strategy)
|
74
75
|
end
|
75
76
|
|
76
77
|
ask_to_quit if [:quit, :no].include?(decision)
|
@@ -131,7 +132,7 @@ module ForemanMaintain
|
|
131
132
|
if execution.aborted?
|
132
133
|
ask_to_quit
|
133
134
|
else
|
134
|
-
next_steps_decision = ask_about_offered_steps(step)
|
135
|
+
next_steps_decision = ask_about_offered_steps(step, scenario)
|
135
136
|
if next_steps_decision != :yes &&
|
136
137
|
execution.fail? && !execution.whitelisted? &&
|
137
138
|
scenario.run_strategy == :fail_fast
|
@@ -141,7 +142,7 @@ module ForemanMaintain
|
|
141
142
|
end
|
142
143
|
|
143
144
|
# rubocop:disable Metrics/MethodLength
|
144
|
-
def ask_about_offered_steps(step)
|
145
|
+
def ask_about_offered_steps(step, scenario)
|
145
146
|
if assumeyes? && rerun_check?(step)
|
146
147
|
@reporter.puts 'Check still failing after attempt to fix. Skipping'
|
147
148
|
return :no
|
@@ -149,7 +150,8 @@ module ForemanMaintain
|
|
149
150
|
if step.next_steps && !step.next_steps.empty?
|
150
151
|
@last_decision_step = step
|
151
152
|
steps = step.next_steps.map(&:ensure_instance)
|
152
|
-
|
153
|
+
|
154
|
+
decision = @reporter.on_next_steps(steps, scenario.run_strategy)
|
153
155
|
case decision
|
154
156
|
when :quit
|
155
157
|
ask_to_quit
|
@@ -116,6 +116,10 @@ module ForemanMaintain
|
|
116
116
|
filter_whitelisted(executed_steps.find_all(&:warning?), options)
|
117
117
|
end
|
118
118
|
|
119
|
+
def steps_with_skipped(options = {})
|
120
|
+
filter_whitelisted(executed_steps.find_all(&:skipped?), options)
|
121
|
+
end
|
122
|
+
|
119
123
|
def filter_whitelisted(steps, options)
|
120
124
|
options.validate_options!(:whitelisted)
|
121
125
|
if options.key?(:whitelisted)
|
@@ -22,10 +22,6 @@ module ForemanMaintain
|
|
22
22
|
convert_kb_to_mb(execute!("df #{dir}|awk {'print $4'}|tail -1").to_i)
|
23
23
|
end
|
24
24
|
|
25
|
-
def space_used_in_percent
|
26
|
-
execute!("df #{dir}|awk {'print $5'}|tail -1").to_i
|
27
|
-
end
|
28
|
-
|
29
25
|
private
|
30
26
|
|
31
27
|
# In fio command, --direct option bypass the cache page
|
@@ -1,17 +1,16 @@
|
|
1
1
|
module ForemanMaintain::Utils
|
2
2
|
module Service
|
3
3
|
class Systemd < Abstract
|
4
|
-
attr_reader :instance_parent_unit
|
5
4
|
def initialize(name, priority, options = {})
|
6
5
|
super
|
7
6
|
@sys = SystemHelpers.new
|
8
|
-
@instance_parent_unit = options.fetch(:instance_parent_unit, nil)
|
9
7
|
end
|
10
8
|
|
11
9
|
def command(action, options = {})
|
12
10
|
do_wait = options.fetch(:wait, true) # wait for service to start
|
13
11
|
all = @options.fetch(:all, false)
|
14
12
|
skip_enablement = @options.fetch(:skip_enablement, false)
|
13
|
+
|
15
14
|
if skip_enablement && %w[enable disable].include?(action)
|
16
15
|
return skip_enablement_message(action, @name)
|
17
16
|
end
|
@@ -51,19 +50,29 @@ module ForemanMaintain::Utils
|
|
51
50
|
|
52
51
|
def exist?
|
53
52
|
if @sys.systemd_installed?
|
54
|
-
systemd =
|
53
|
+
systemd = service_enabled_status
|
55
54
|
systemd == 'enabled' || systemd == 'disabled'
|
56
55
|
else
|
57
56
|
File.exist?("/etc/init.d/#{@name}")
|
58
57
|
end
|
59
58
|
end
|
60
59
|
|
60
|
+
def enabled?
|
61
|
+
if @sys.systemd_installed?
|
62
|
+
service_enabled_status == 'enabled'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
61
66
|
private
|
62
67
|
|
63
68
|
def execute(action, options = {})
|
64
69
|
@sys.execute_with_status(command(action, options))
|
65
70
|
end
|
66
71
|
|
72
|
+
def service_enabled_status
|
73
|
+
@sys.execute("systemctl is-enabled #{@name} 2>&1 | tail -1").strip
|
74
|
+
end
|
75
|
+
|
67
76
|
def skip_enablement_message(action, name)
|
68
77
|
# Enable and disable does not work well with globs since they treat them literally.
|
69
78
|
# We are skipping the pulpcore-workers@* for these actions until they are configured in
|
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: 0.
|
4
|
+
version: 0.7.0
|
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:
|
11
|
+
date: 2020-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clamp
|
@@ -125,7 +125,6 @@ files:
|
|
125
125
|
- definitions/checks/check_hotfix_installed.rb
|
126
126
|
- definitions/checks/check_tmout.rb
|
127
127
|
- definitions/checks/disk/available_space.rb
|
128
|
-
- definitions/checks/disk/available_space_candlepin.rb
|
129
128
|
- definitions/checks/disk/performance.rb
|
130
129
|
- definitions/checks/env_proxy.rb
|
131
130
|
- definitions/checks/foreman/check_checkpoint_segments.rb
|
@@ -148,6 +147,7 @@ files:
|
|
148
147
|
- definitions/checks/mongo/db_up.rb
|
149
148
|
- definitions/checks/mongo/tools_installed.rb
|
150
149
|
- definitions/checks/original_assets.rb
|
150
|
+
- definitions/checks/package_manager/yum/validate_yum_config.rb
|
151
151
|
- definitions/checks/pulpcore/db_up.rb
|
152
152
|
- definitions/checks/puppet/provide_upgrade_guide.rb
|
153
153
|
- definitions/checks/puppet/verify_no_empty_cacert_requests.rb
|
@@ -162,7 +162,6 @@ files:
|
|
162
162
|
- definitions/checks/services_up.rb
|
163
163
|
- definitions/checks/system_registration.rb
|
164
164
|
- definitions/checks/version_locking_enabled.rb
|
165
|
-
- definitions/checks/yum_exclude.rb
|
166
165
|
- definitions/features/apache.rb
|
167
166
|
- definitions/features/candlepin.rb
|
168
167
|
- definitions/features/candlepin_database.rb
|
@@ -221,7 +220,9 @@ files:
|
|
221
220
|
- definitions/procedures/backup/snapshot/mount_pulpcore_db.rb
|
222
221
|
- definitions/procedures/backup/snapshot/prepare_mount.rb
|
223
222
|
- definitions/procedures/candlepin/delete_orphaned_records_from_env_content.rb
|
223
|
+
- definitions/procedures/content/migration_stats.rb
|
224
224
|
- definitions/procedures/content/prepare.rb
|
225
|
+
- definitions/procedures/content/prepare_abort.rb
|
225
226
|
- definitions/procedures/content/switchover.rb
|
226
227
|
- definitions/procedures/crond/start.rb
|
227
228
|
- definitions/procedures/crond/stop.rb
|
@@ -254,6 +255,7 @@ files:
|
|
254
255
|
- definitions/procedures/packages/update.rb
|
255
256
|
- definitions/procedures/packages/update_all_confirmation.rb
|
256
257
|
- definitions/procedures/passenger_recycler.rb
|
258
|
+
- definitions/procedures/prep_6_10_upgrade.rb
|
257
259
|
- definitions/procedures/pulp/migrate.rb
|
258
260
|
- definitions/procedures/pulpcore/migrate.rb
|
259
261
|
- definitions/procedures/puppet/delete_empty_ca_cert_request_files.rb
|
@@ -289,10 +291,13 @@ files:
|
|
289
291
|
- definitions/scenarios/content.rb
|
290
292
|
- definitions/scenarios/maintenance_mode.rb
|
291
293
|
- definitions/scenarios/packages.rb
|
294
|
+
- definitions/scenarios/prep_6_10_upgrade.rb
|
292
295
|
- definitions/scenarios/restore.rb
|
293
296
|
- definitions/scenarios/services.rb
|
294
297
|
- definitions/scenarios/upgrade_to_capsule_6_8.rb
|
295
298
|
- definitions/scenarios/upgrade_to_capsule_6_8_z.rb
|
299
|
+
- definitions/scenarios/upgrade_to_capsule_6_9.rb
|
300
|
+
- definitions/scenarios/upgrade_to_capsule_6_9_z.rb
|
296
301
|
- definitions/scenarios/upgrade_to_satellite_6_2.rb
|
297
302
|
- definitions/scenarios/upgrade_to_satellite_6_2_z.rb
|
298
303
|
- definitions/scenarios/upgrade_to_satellite_6_3.rb
|
@@ -307,6 +312,8 @@ files:
|
|
307
312
|
- definitions/scenarios/upgrade_to_satellite_6_7_z.rb
|
308
313
|
- definitions/scenarios/upgrade_to_satellite_6_8.rb
|
309
314
|
- definitions/scenarios/upgrade_to_satellite_6_8_z.rb
|
315
|
+
- definitions/scenarios/upgrade_to_satellite_6_9.rb
|
316
|
+
- definitions/scenarios/upgrade_to_satellite_6_9_z.rb
|
310
317
|
- extras/foreman-maintain.sh
|
311
318
|
- extras/foreman_protector/foreman-protector.conf
|
312
319
|
- extras/foreman_protector/foreman-protector.py
|
@@ -339,7 +346,6 @@ files:
|
|
339
346
|
- lib/foreman_maintain/concerns/hammer.rb
|
340
347
|
- lib/foreman_maintain/concerns/logger.rb
|
341
348
|
- lib/foreman_maintain/concerns/metadata.rb
|
342
|
-
- lib/foreman_maintain/concerns/primary_checks.rb
|
343
349
|
- lib/foreman_maintain/concerns/reporter.rb
|
344
350
|
- lib/foreman_maintain/concerns/scenario_metadata.rb
|
345
351
|
- lib/foreman_maintain/concerns/system_helpers.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Checks
|
2
|
-
module Disk
|
3
|
-
class AvailableSpaceCandlepin < ForemanMaintain::Check
|
4
|
-
metadata do
|
5
|
-
label :available_space_cp
|
6
|
-
description 'Check to make sure /var/lib/candlepin has enough space'
|
7
|
-
tags :pre_upgrade
|
8
|
-
confine do
|
9
|
-
feature(:candlepin) && check_min_version('candlepin', '3.1')
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
MAX_USAGE_IN_PERCENT = 90
|
14
|
-
|
15
|
-
def run
|
16
|
-
assert(enough_space?, "System has more than #{MAX_USAGE_IN_PERCENT}% space used"\
|
17
|
-
" on #{feature(:candlepin).work_dir}.\n"\
|
18
|
-
'See https://bugzilla.redhat.com/show_bug.cgi?id=1898605')
|
19
|
-
end
|
20
|
-
|
21
|
-
def enough_space?
|
22
|
-
io_obj = ForemanMaintain::Utils::Disk::IODevice.new(feature(:candlepin).work_dir)
|
23
|
-
io_obj.space_used_in_percent < MAX_USAGE_IN_PERCENT
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
class Checks::YumExclude < ForemanMaintain::Check
|
2
|
-
metadata do
|
3
|
-
label :check_yum_exclude_list
|
4
|
-
description 'Check if yum exclude list is configured'
|
5
|
-
tags :pre_upgrade
|
6
|
-
end
|
7
|
-
|
8
|
-
EXCLUDE_SET_RE = /^exclude\s*=\s*\S+.*$/
|
9
|
-
|
10
|
-
def run
|
11
|
-
grep_result = grep_yum_exclude
|
12
|
-
assert(!grep_result.match(EXCLUDE_SET_RE),
|
13
|
-
'The /etc/yum.conf has exclude list configured as below,'\
|
14
|
-
"\n #{grep_result}"\
|
15
|
-
"\nUnset this as it can cause yum update or upgrade failures !")
|
16
|
-
end
|
17
|
-
|
18
|
-
def grep_yum_exclude
|
19
|
-
execute_with_status('grep -w exclude /etc/yum.conf')[1]
|
20
|
-
end
|
21
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module ForemanMaintain
|
2
|
-
module Concerns
|
3
|
-
module PrimaryChecks
|
4
|
-
def validate_downstream_packages
|
5
|
-
return unless detector.feature(:installer) && detector.feature(:installer).with_scenarios?
|
6
|
-
if (package = package_name) && !package_manager.installed?(package)
|
7
|
-
raise ForemanMaintain::Error::Fail,
|
8
|
-
"Error: Important rpm package #{package} is not installed!"\
|
9
|
-
"\nInstall #{package} rpm to ensure system consistency."
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def package_name
|
14
|
-
installed_scenario = detector.feature(:installer).last_scenario
|
15
|
-
if installed_scenario == 'satellite'
|
16
|
-
'satellite'
|
17
|
-
elsif installed_scenario == 'capsule'
|
18
|
-
'satellite-capsule'
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|