foreman_maintain 1.4.0 → 1.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/definitions/checks/check_hotfix_installed.rb +2 -3
  4. data/definitions/checks/disk/performance.rb +1 -2
  5. data/definitions/checks/package_manager/{yum/validate_yum_config.rb → dnf/validate_dnf_config.rb} +13 -11
  6. data/definitions/checks/repositories/check_upstream_repository.rb +1 -2
  7. data/definitions/features/installer.rb +8 -66
  8. data/definitions/features/instance.rb +0 -6
  9. data/definitions/procedures/backup/metadata.rb +5 -3
  10. data/definitions/procedures/backup/snapshot/snapshot_deprecation_message.rb +14 -0
  11. data/definitions/procedures/packages/check_for_reboot.rb +16 -0
  12. data/definitions/procedures/packages/installer_confirmation.rb +1 -1
  13. data/definitions/procedures/packages/update.rb +3 -3
  14. data/definitions/scenarios/backup.rb +10 -8
  15. data/definitions/scenarios/puppet.rb +0 -3
  16. data/definitions/scenarios/self_upgrade.rb +4 -6
  17. data/definitions/scenarios/upgrade_to_capsule_6_15.rb +2 -2
  18. data/definitions/scenarios/upgrade_to_capsule_6_15_z.rb +2 -2
  19. data/definitions/scenarios/upgrade_to_katello_nightly.rb +1 -1
  20. data/definitions/scenarios/upgrade_to_satellite_6_15.rb +2 -2
  21. data/definitions/scenarios/upgrade_to_satellite_6_15_z.rb +2 -2
  22. data/extras/foreman_protector/foreman-protector.conf +1 -1
  23. data/extras/foreman_protector/foreman-protector.whitelist +16 -0
  24. data/lib/foreman_maintain/cli/backup_command.rb +1 -1
  25. data/lib/foreman_maintain/concerns/base_database.rb +0 -41
  26. data/lib/foreman_maintain/concerns/system_helpers.rb +2 -2
  27. data/lib/foreman_maintain/config.rb +5 -1
  28. data/lib/foreman_maintain/package_manager/dnf.rb +138 -11
  29. data/lib/foreman_maintain/package_manager.rb +0 -1
  30. data/lib/foreman_maintain/repository_manager/el.rb +2 -2
  31. data/lib/foreman_maintain/version.rb +1 -1
  32. metadata +9 -17
  33. data/definitions/checks/backup/directory_ready.rb +0 -23
  34. data/definitions/checks/check_for_newer_packages.rb +0 -67
  35. data/definitions/checks/foreman/check_checkpoint_segments.rb +0 -59
  36. data/definitions/checks/foreman/check_duplicate_roles.rb +0 -42
  37. data/definitions/checks/foreman/puppet_class_duplicates.rb +0 -48
  38. data/definitions/checks/original_assets.rb +0 -23
  39. data/definitions/procedures/foreman/apipie_cache.rb +0 -12
  40. data/definitions/procedures/foreman_docker/remove_foreman_docker.rb +0 -16
  41. data/extras/foreman_protector/yum/foreman-protector.py +0 -86
  42. data/lib/foreman_maintain/package_manager/yum.rb +0 -142
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a8e76b84acb5103032daf0a4207f4c53a7d425fffe2fbfce49273200e3f5a732
4
- data.tar.gz: a91160e10024846b1b931515e55c6461aba0c2c3b5209a966fb9c43685b3eea5
3
+ metadata.gz: 4d37937d8bc4cbf619ea0e654e6826ae92a96ecd74f1b260e5b402df7bcbdc68
4
+ data.tar.gz: a0fcf7a0f6802f7547c26d640650ac29cafa3568f7fdbc648f31d3dbdbcf6a72
5
5
  SHA512:
6
- metadata.gz: 005d201ea441c1e1ecdd51838f76f9157357a332cb025ba6ea9fe835bff604d601b259ca374d8cf32118ab12203bea2dfc490d959127dee1f92768a684fb0e0f
7
- data.tar.gz: f51b31aa841554becdf0e3904c1a9d5259bd0d7691a83240b99f731320335ad20ee5428fc5c02267bf41ec50bd4f0e87bce2e7fcb9cec0f068ea4c03b04e1cac
6
+ metadata.gz: 2bab8216e974e96128a5f0fb88a201d1c8dd9da13d71b89efea76337c242f6459285e8af8a8dbcacbaa318f402c1b26cc7056e5e1d976946b8939f13bbaa4fda
7
+ data.tar.gz: 59772c9b2ec381408458383f4e06bafb8bb3998f5c4cea60be7a2dc2a254803896a05aa2858aad48f34e54185b7db6a455534cafa5f671b6a52a69bbe0b07e74
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Foreman Maintain [![Build Status](https://github.com/theforeman/foreman_maintain/workflows/Ruby%20Tests/badge.svg?event=pull_request)](https://github.com/theforeman/foreman_maintain/workflows/Ruby%20Tests/badge.svg?event=pull_request) <a href="https://codeclimate.com/github/theforeman/foreman_maintain"><img src="https://codeclimate.com/github/theforeman/foreman_maintain/badges/gpa.svg" /></a>
1
+ # Foreman Maintain [![Ruby Tests](https://github.com/theforeman/foreman_maintain/actions/workflows/ruby_tests.yml/badge.svg)](https://github.com/theforeman/foreman_maintain/actions/workflows/ruby_tests.yml) <a href="https://codeclimate.com/github/theforeman/foreman_maintain"><img src="https://codeclimate.com/github/theforeman/foreman_maintain/badges/gpa.svg" /></a>
2
2
 
3
3
  The `foreman_maintain` aims to provide various features that helps keep the
4
4
  Foreman/Satellite up and running. It supports multiple versions and subparts
@@ -4,8 +4,7 @@ class Checks::CheckHotfixInstalled < ForemanMaintain::Check
4
4
  description 'Check to verify if any hotfix installed on system'
5
5
  tags :pre_upgrade
6
6
  preparation_steps do
7
- [Checks::Repositories::CheckNonRhRepository.new,
8
- Procedures::Packages::Install.new(:packages => %w[yum-utils])]
7
+ [Checks::Repositories::CheckNonRhRepository.new]
9
8
  end
10
9
 
11
10
  confine do
@@ -45,7 +44,7 @@ class Checks::CheckHotfixInstalled < ForemanMaintain::Check
45
44
 
46
45
  def installed_packages
47
46
  packages = []
48
- IO.popen(['repoquery', '-a', '--installed', '--qf', query_format]) do |io|
47
+ IO.popen(['dnf', 'repoquery', '-a', '--installed', '--qf', query_format]) do |io|
49
48
  io.each do |line|
50
49
  repo, pkg = line.chomp.split
51
50
  next if repo.nil? || pkg.nil?
@@ -30,8 +30,7 @@ module Checks
30
30
  puts "\n"
31
31
  puts stats.stdout
32
32
 
33
- current_downstream_feature = feature(:instance).downstream
34
- if current_downstream_feature&.at_least_version?('6.3')
33
+ if feature(:instance).downstream
35
34
  assert(success, io_obj.slow_disk_error_msg + warning_message, :warn => true)
36
35
  else
37
36
  assert(success, io_obj.slow_disk_error_msg)
@@ -1,9 +1,9 @@
1
1
  module Checks::PackageManager
2
- module Yum
3
- class ValidateYumConfig < ForemanMaintain::Check
2
+ module Dnf
3
+ class ValidateDnfConfig < ForemanMaintain::Check
4
4
  metadata do
5
- label :validate_yum_config
6
- description 'Check to validate yum configuration before upgrade'
5
+ label :validate_dnf_config
6
+ description 'Check to validate dnf configuration before upgrade'
7
7
  tags :pre_upgrade
8
8
  end
9
9
 
@@ -17,30 +17,32 @@ module Checks::PackageManager
17
17
 
18
18
  private
19
19
 
20
+ # rubocop:disable Metrics/LineLength
20
21
  def failure_message(final_result)
21
22
  verb_string = final_result[:matched_keys].length > 1 ? 'are' : 'is'
22
23
 
23
- "#{final_result[:matched_keys].join(',')} #{verb_string} set in /etc/yum.conf as below:"\
24
+ "#{final_result[:matched_keys].join(',')} #{verb_string} set in /etc/dnf/dnf.conf as below:"\
24
25
  "\n#{final_result[:grep_output]}"\
25
- "\nUnset this configuration as it is risky while yum update or upgrade!"
26
+ "\nUnset this configuration as it is risky while dnf update or upgrade!"
26
27
  end
28
+ # rubocop:enable Metrics/LineLength
27
29
 
28
30
  def verify_config_options
29
31
  result = {}
30
- combined_regex = yum_config_options.values.join('|')
32
+ combined_regex = dnf_config_options.values.join('|')
31
33
  result[:grep_output] = execute_grep_cmd(combined_regex)
32
- result[:matched_keys] = yum_config_options.keys.select do |key|
34
+ result[:matched_keys] = dnf_config_options.keys.select do |key|
33
35
  result[:grep_output].include?(key)
34
36
  end
35
37
  result
36
38
  end
37
39
 
38
40
  def execute_grep_cmd(regex_string)
39
- execute_with_status("grep -iE '#{regex_string}' /etc/yum.conf")[1]
41
+ execute_with_status("grep -iE '#{regex_string}' /etc/dnf/dnf.conf")[1]
40
42
  end
41
43
 
42
- def yum_config_options
43
- @yum_config_options ||= {
44
+ def dnf_config_options
45
+ @dnf_config_options ||= {
44
46
  'exclude' => '^exclude\s*=\s*\S+.*$',
45
47
  }
46
48
  end
@@ -6,8 +6,7 @@ class Checks::CheckUpstreamRepository < ForemanMaintain::Check
6
6
  description 'Check if any upstream repositories are enabled on system'
7
7
  tags :pre_upgrade
8
8
  preparation_steps do
9
- [Checks::Repositories::CheckNonRhRepository.new,
10
- Procedures::Packages::Install.new(:packages => %w[yum-utils])]
9
+ [Checks::Repositories::CheckNonRhRepository.new]
11
10
  end
12
11
  confine do
13
12
  feature(:instance).downstream
@@ -3,22 +3,10 @@ class Features::Installer < ForemanMaintain::Feature
3
3
  label :installer
4
4
 
5
5
  confine do
6
- find_package('foreman-installer') ||
7
- find_package('katello-installer') ||
8
- find_package('capsule-installer')
6
+ find_package('foreman-installer')
9
7
  end
10
8
  end
11
9
 
12
- def initialize
13
- @installer_type = if find_package('foreman-installer')
14
- :scenarios
15
- elsif find_package('katello-installer')
16
- :legacy_katello
17
- elsif find_package('capsule-installer')
18
- :legacy_capsule
19
- end
20
- end
21
-
22
10
  def answers
23
11
  load_answers(configuration)
24
12
  end
@@ -28,39 +16,17 @@ class Features::Installer < ForemanMaintain::Feature
28
16
  end
29
17
 
30
18
  def config_file
31
- case @installer_type
32
- when :scenarios
33
- last_scenario_config
34
- when :legacy_katello
35
- File.join(config_directory, 'katello-installer.yaml')
36
- when :legacy_capsule
37
- File.join(config_directory, 'capsule-installer.yaml')
38
- end
39
- end
40
-
41
- def with_scenarios?
42
- @installer_type == :scenarios
19
+ last_scenario_config
43
20
  end
44
21
 
45
22
  def config_directory
46
- case @installer_type
47
- when :scenarios
48
- '/etc/foreman-installer'
49
- when :legacy_katello
50
- '/etc/katello-installer'
51
- when :legacy_capsule
52
- '/etc/capsule-installer'
53
- end
23
+ '/etc/foreman-installer'
54
24
  end
55
25
 
56
26
  def custom_hiera_file
57
27
  @custom_hiera_file ||= File.join(config_directory, 'custom-hiera.yaml')
58
28
  end
59
29
 
60
- def can_upgrade?
61
- @installer_type == :scenarios || @installer_type == :legacy_katello
62
- end
63
-
64
30
  def config_files
65
31
  Dir.glob(File.join(config_directory, '**/*')) +
66
32
  [
@@ -71,23 +37,14 @@ class Features::Installer < ForemanMaintain::Feature
71
37
  end
72
38
 
73
39
  def last_scenario
74
- return nil unless with_scenarios?
75
-
76
40
  File.basename(last_scenario_config).split('.')[0]
77
41
  end
78
42
 
79
43
  def installer_command
80
- case @installer_type
81
- when :scenarios
82
- if feature(:satellite)
83
- 'satellite-installer'
84
- else
85
- 'foreman-installer'
86
- end
87
- when :legacy_katello
88
- 'katello-installer'
89
- when :legacy_capsule
90
- 'capsule-installer'
44
+ if feature(:satellite)
45
+ 'satellite-installer'
46
+ else
47
+ 'foreman-installer'
91
48
  end
92
49
  end
93
50
 
@@ -105,22 +62,7 @@ class Features::Installer < ForemanMaintain::Feature
105
62
  end
106
63
 
107
64
  def upgrade(exec_options = {})
108
- run(installer_arguments, exec_options)
109
- end
110
-
111
- def installer_arguments
112
- installer_args = ''
113
-
114
- if feature(:foreman_proxy)&.with_content? &&
115
- check_max_version('foreman-installer', '3.4')
116
- installer_args += ' --disable-system-checks'
117
- end
118
-
119
- if !check_min_version('foreman-installer', '2.1') && can_upgrade?
120
- installer_args += ' --upgrade'
121
- end
122
-
123
- installer_args
65
+ run('', exec_options)
124
66
  end
125
67
 
126
68
  def initial_admin_username
@@ -139,12 +139,6 @@ class Features::Instance < ForemanMaintain::Feature
139
139
  end
140
140
 
141
141
  def pick_failing_components(components)
142
- if feature(:katello).current_version < Gem::Version.new('3.2.0')
143
- # Note that katello_ping returns an empty result against foreman_auth.
144
- # https://github.com/Katello/katello/commit/95d7b9067d38f269a5ec121fb73b5c19d4422baf
145
- components.reject! { |n| n.eql?('foreman_auth') }
146
- end
147
-
148
142
  components.each_with_object([]) do |(name, data), failing|
149
143
  failing << name unless data['status'] == 'ok'
150
144
  end
@@ -64,9 +64,11 @@ module Procedures::Backup
64
64
  end
65
65
 
66
66
  def proxy_config(spinner)
67
- spinner.update('Collecting proxy configuration')
68
- feature(:installer).answers['foreman_proxy'].select do |key, _|
69
- PROXY_CONFIG_ENTRIES.include?(key)
67
+ if feature(:installer)
68
+ spinner.update('Collecting proxy configuration')
69
+ feature(:installer).answers['foreman_proxy'].select do |key, _|
70
+ PROXY_CONFIG_ENTRIES.include?(key)
71
+ end
70
72
  end
71
73
  end
72
74
  end
@@ -0,0 +1,14 @@
1
+ module Procedures::Backup
2
+ module Snapshot
3
+ class SnapshotDeprecationMessage < ForemanMaintain::Procedure
4
+ metadata do
5
+ description 'Snapshot backups are deprecated'
6
+ tags :backup
7
+ end
8
+
9
+ def run
10
+ set_warn('Snapshot backups are deprecated and will be removed in a future version.')
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ module Procedures::Packages
2
+ class CheckForReboot < ForemanMaintain::Procedure
3
+ metadata do
4
+ description 'Check if system needs reboot'
5
+ end
6
+
7
+ def run
8
+ status, output = execute_with_status('dnf needs-restarting --reboothint')
9
+ if status == 1
10
+ set_status(:warning, output)
11
+ else
12
+ set_status(:success, output)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -6,7 +6,7 @@ module Procedures::Packages
6
6
 
7
7
  def run
8
8
  question = "\nWARNING: This script runs #{feature(:installer).installer_command} " \
9
- "after the yum execution \n" \
9
+ "after the dnf execution \n" \
10
10
  "to ensure the #{feature(:instance).product_name} " \
11
11
  "is in a consistent state.\n" \
12
12
  "As a result some of your services may be restarted. \n\n" \
@@ -6,13 +6,13 @@ module Procedures::Packages
6
6
  param :force, 'Do not skip if package is installed', :flag => true, :default => false
7
7
  param :warn_on_errors, 'Do not interrupt scenario on failure',
8
8
  :flag => true, :default => false
9
- param :yum_options, 'Extra yum options if any', :array => true, :default => []
9
+ param :dnf_options, 'Extra dnf options if any', :array => true, :default => []
10
10
  end
11
11
 
12
12
  def run
13
13
  assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
14
14
  package_manager.clean_cache(:assumeyes => assumeyes_val)
15
- opts = { :assumeyes => assumeyes_val, :yum_options => @yum_options }
15
+ opts = { :assumeyes => assumeyes_val, :dnf_options => @dnf_options }
16
16
  packages_action(:update, @packages, opts)
17
17
  rescue ForemanMaintain::Error::ExecutionError => e
18
18
  if @warn_on_errors
@@ -27,7 +27,7 @@ module Procedures::Packages
27
27
  end
28
28
 
29
29
  def description
30
- if @yum_options.include?('--downloadonly')
30
+ if @dnf_options.include?('--downloadonly')
31
31
  "Download package(s) #{@packages.join(', ')}"
32
32
  else
33
33
  "Update package(s) #{@packages.join(', ')}"
@@ -20,12 +20,13 @@ module ForemanMaintain::Scenarios
20
20
  end
21
21
 
22
22
  def compose
23
- check_valid_startegy
23
+ check_valid_strategy
24
+ snapshot_deprecation_warning
24
25
  safety_confirmation
25
26
  accessibility_confirmation
26
27
  prepare_directory
27
28
  logical_volume_confirmation
28
- add_step_with_context(Procedures::Backup::Metadata)
29
+ add_step_with_context(Procedures::Backup::Metadata, :online_backup => online_backup?)
29
30
 
30
31
  case strategy
31
32
  when :online
@@ -49,7 +50,6 @@ module ForemanMaintain::Scenarios
49
50
  # rubocop:disable Metrics/MethodLength
50
51
  def set_context_mapping
51
52
  context.map(:backup_dir,
52
- Checks::Backup::DirectoryReady => :backup_dir,
53
53
  Procedures::Backup::PrepareDirectory => :backup_dir,
54
54
  Procedures::Backup::Metadata => :backup_dir,
55
55
  Procedures::Backup::ConfigFiles => :backup_dir,
@@ -66,7 +66,6 @@ module ForemanMaintain::Scenarios
66
66
  Procedures::Backup::Snapshot::MountForemanDB => :backup_dir,
67
67
  Procedures::Backup::Snapshot::MountPulpcoreDB => :backup_dir)
68
68
  context.map(:preserve_dir,
69
- Checks::Backup::DirectoryReady => :preserve_dir,
70
69
  Procedures::Backup::PrepareDirectory => :preserve_dir)
71
70
  context.map(:incremental_dir,
72
71
  Procedures::Backup::PrepareDirectory => :incremental_dir,
@@ -104,8 +103,6 @@ module ForemanMaintain::Scenarios
104
103
 
105
104
  def prepare_directory
106
105
  add_step_with_context(Procedures::Backup::PrepareDirectory)
107
- add_step_with_context(Checks::Backup::DirectoryReady,
108
- :postgres_access => online_backup? || include_db_dumps?)
109
106
  end
110
107
 
111
108
  def logical_volume_confirmation
@@ -114,6 +111,12 @@ module ForemanMaintain::Scenarios
114
111
  end
115
112
  end
116
113
 
114
+ def snapshot_deprecation_warning
115
+ if strategy == :snapshot
116
+ add_step_with_context(Procedures::Backup::Snapshot::SnapshotDeprecationMessage)
117
+ end
118
+ end
119
+
117
120
  def accessibility_confirmation
118
121
  if [:offline, :snapshot].include?(strategy)
119
122
  add_step_with_context(Procedures::Backup::AccessibilityConfirmation)
@@ -126,7 +129,7 @@ module ForemanMaintain::Scenarios
126
129
  end
127
130
  end
128
131
 
129
- def check_valid_startegy
132
+ def check_valid_strategy
130
133
  unless [:online, :offline, :snapshot].include? strategy
131
134
  raise ArgumentError, "Unsupported strategy '#{strategy}'"
132
135
  end
@@ -199,7 +202,6 @@ module ForemanMaintain::Scenarios
199
202
  Procedures::Backup::Online::ForemanDB,
200
203
  Procedures::Backup::Online::PulpcoreDB
201
204
  )
202
- add_step_with_context(Procedures::Backup::Metadata, :online_backup => true)
203
205
  end
204
206
 
205
207
  def strategy
@@ -15,9 +15,6 @@ module ForemanMaintain::Scenarios
15
15
  add_step(Procedures::Puppet::RemovePuppet)
16
16
  add_step(Procedures::Puppet::RemovePuppetData) if context.get(:remove_data)
17
17
  add_step(Procedures::Service::Restart)
18
- if server?
19
- add_step(Procedures::Foreman::ApipieCache)
20
- end
21
18
  end
22
19
  end
23
20
  end
@@ -67,13 +67,11 @@ module ForemanMaintain::Scenarios
67
67
  def downstream_self_upgrade(pkgs_to_update)
68
68
  ForemanMaintain.enable_maintenance_module
69
69
 
70
- if check_min_version('foreman', '2.5') || check_min_version('foreman-proxy', '2.5')
71
- yum_options = req_repos_to_update_pkgs.map do |id|
72
- "--enablerepo=#{id}"
73
- end
74
- add_step(Procedures::Packages::Update.new(packages: pkgs_to_update, assumeyes: true,
75
- yum_options: yum_options))
70
+ dnf_options = req_repos_to_update_pkgs.map do |id|
71
+ "--enablerepo=#{id}"
76
72
  end
73
+ add_step(Procedures::Packages::Update.new(packages: pkgs_to_update, assumeyes: true,
74
+ dnf_options: dnf_options))
77
75
  end
78
76
 
79
77
  def upstream_self_upgrade(pkgs_to_update)
@@ -27,7 +27,6 @@ module Scenarios::Capsule_6_15
27
27
  def compose
28
28
  add_steps(find_checks(:default))
29
29
  add_steps(find_checks(:pre_upgrade))
30
- add_step(Checks::Foreman::CheckpointSegments)
31
30
  add_step(Checks::Repositories::Validate.new(:version => '6.15'))
32
31
  end
33
32
  end
@@ -58,7 +57,7 @@ module Scenarios::Capsule_6_15
58
57
  modules_to_enable = ["satellite-capsule:#{el_short_name}"]
59
58
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
60
59
  add_step(Procedures::Packages::Update.new(:assumeyes => true,
61
- :yum_options => ['--downloadonly']))
60
+ :dnf_options => ['--downloadonly']))
62
61
  add_step(Procedures::Service::Stop.new)
63
62
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
64
63
  add_step_with_context(Procedures::Installer::Upgrade)
@@ -88,6 +87,7 @@ module Scenarios::Capsule_6_15
88
87
  def compose
89
88
  add_steps(find_checks(:default))
90
89
  add_steps(find_checks(:post_upgrade))
90
+ add_step(Procedures::Packages::CheckForReboot)
91
91
  end
92
92
  end
93
93
  end
@@ -27,7 +27,6 @@ module Scenarios::Capsule_6_15_z
27
27
  def compose
28
28
  add_steps(find_checks(:default))
29
29
  add_steps(find_checks(:pre_upgrade))
30
- add_step(Checks::Foreman::CheckpointSegments)
31
30
  add_step(Checks::Repositories::Validate.new(:version => '6.15'))
32
31
  end
33
32
  end
@@ -58,7 +57,7 @@ module Scenarios::Capsule_6_15_z
58
57
  modules_to_enable = ["satellite-capsule:#{el_short_name}"]
59
58
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
60
59
  add_step(Procedures::Packages::Update.new(:assumeyes => true,
61
- :yum_options => ['--downloadonly']))
60
+ :dnf_options => ['--downloadonly']))
62
61
  add_step(Procedures::Service::Stop.new)
63
62
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
64
63
  add_step_with_context(Procedures::Installer::Upgrade)
@@ -88,6 +87,7 @@ module Scenarios::Capsule_6_15_z
88
87
  def compose
89
88
  add_steps(find_checks(:default))
90
89
  add_steps(find_checks(:post_upgrade))
90
+ add_step(Procedures::Packages::CheckForReboot)
91
91
  end
92
92
  end
93
93
  end
@@ -55,7 +55,7 @@ module Scenarios::Katello_Nightly
55
55
  modules_to_enable = ["katello:#{el_short_name}", "pulpcore:#{el_short_name}"]
56
56
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
57
57
  add_step(Procedures::Packages::Update.new(:assumeyes => true,
58
- :yum_options => ['--downloadonly']))
58
+ :dnf_options => ['--downloadonly']))
59
59
  add_step(Procedures::Service::Stop.new)
60
60
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
61
61
  add_step_with_context(Procedures::Installer::Upgrade)
@@ -27,7 +27,6 @@ module Scenarios::Satellite_6_15
27
27
  def compose
28
28
  add_steps(find_checks(:default))
29
29
  add_steps(find_checks(:pre_upgrade))
30
- add_step(Checks::Foreman::CheckpointSegments)
31
30
  add_step(Checks::Repositories::Validate.new(:version => '6.15'))
32
31
  end
33
32
  end
@@ -59,7 +58,7 @@ module Scenarios::Satellite_6_15
59
58
  modules_to_enable = ["satellite:#{el_short_name}"]
60
59
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
61
60
  add_step(Procedures::Packages::Update.new(:assumeyes => true,
62
- :yum_options => ['--downloadonly']))
61
+ :dnf_options => ['--downloadonly']))
63
62
  add_step(Procedures::Service::Stop.new)
64
63
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
65
64
  add_step_with_context(Procedures::Installer::Upgrade)
@@ -90,6 +89,7 @@ module Scenarios::Satellite_6_15
90
89
  def compose
91
90
  add_steps(find_checks(:default))
92
91
  add_steps(find_checks(:post_upgrade))
92
+ add_step(Procedures::Packages::CheckForReboot)
93
93
  end
94
94
  end
95
95
  end
@@ -27,7 +27,6 @@ module Scenarios::Satellite_6_15_z
27
27
  def compose
28
28
  add_steps(find_checks(:default))
29
29
  add_steps(find_checks(:pre_upgrade))
30
- add_step(Checks::Foreman::CheckpointSegments)
31
30
  add_step(Checks::Repositories::Validate.new(:version => '6.15'))
32
31
  end
33
32
  end
@@ -58,7 +57,7 @@ module Scenarios::Satellite_6_15_z
58
57
  modules_to_enable = ["satellite:#{el_short_name}"]
59
58
  add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
60
59
  add_step(Procedures::Packages::Update.new(:assumeyes => true,
61
- :yum_options => ['--downloadonly']))
60
+ :dnf_options => ['--downloadonly']))
62
61
  add_step(Procedures::Service::Stop.new)
63
62
  add_step(Procedures::Packages::Update.new(:assumeyes => true))
64
63
  add_step_with_context(Procedures::Installer::Upgrade)
@@ -89,6 +88,7 @@ module Scenarios::Satellite_6_15_z
89
88
  def compose
90
89
  add_steps(find_checks(:default))
91
90
  add_steps(find_checks(:post_upgrade))
91
+ add_step(Procedures::Packages::CheckForReboot)
92
92
  end
93
93
  end
94
94
  end
@@ -1,3 +1,3 @@
1
1
  [main]
2
2
  enabled = 0
3
- whitelist = /etc/yum/pluginconf.d/foreman-protector.whitelist
3
+ whitelist = /etc/dnf/plugins/foreman-protector.whitelist
@@ -39,5 +39,21 @@ python3-firewall
39
39
  python3-nftables
40
40
  python3-slip
41
41
  python3-slip-dbus
42
+ # pcp
43
+ pcp
44
+ pcp-conf
45
+ pcp-libs
46
+ pcp-pmda-apache
47
+ pcp-pmda-openmetrics
48
+ pcp-pmda-postgresql
49
+ pcp-pmda-redis
50
+ pcp-system-tools
51
+ python3-pcp
52
+ grafana
53
+ grafana-pcp
42
54
  # foreman-maintain
43
55
  rubygem-foreman_maintain
56
+ # fapolicyd
57
+ fapolicyd
58
+ foreman-fapolicyd
59
+ foreman-proxy-fapolicyd
@@ -155,7 +155,7 @@ module ForemanMaintain
155
155
  class BackupCommand < Base
156
156
  subcommand 'online', 'Keep services online during backup', OnlineBackupCommand
157
157
  subcommand 'offline', 'Shut down services to preserve consistent backup', OfflineBackupCommand
158
- subcommand 'snapshot', 'Use snapshots of the databases to create backup', SnapshotBackupCommand
158
+ subcommand 'snapshot', 'Use snapshots of the databases to create backup (DEPRECATED)', SnapshotBackupCommand
159
159
  end
160
160
  # rubocop:enable Metrics/LineLength
161
161
  end
@@ -75,11 +75,6 @@ module ForemanMaintain
75
75
  :hidden_patterns => [config['password']])
76
76
  end
77
77
 
78
- def backup_file_path(config = configuration)
79
- dump_file_name = "#{config['database']}_#{Time.now.strftime('%Y-%m-%d_%H-%M-%S')}.dump"
80
- "#{backup_dir}/#{dump_file_name}.bz2"
81
- end
82
-
83
78
  def dump_db(file, config = configuration)
84
79
  execute!(dump_command(config) + " > #{file}", :hidden_patterns => [config['password']])
85
80
  end
@@ -115,47 +110,11 @@ module ForemanMaintain
115
110
  end
116
111
  end
117
112
 
118
- # TODO: refactor to use dump_db
119
- def backup_db_command(file_path, config = configuration)
120
- pg_dump_cmd = "pg_dump -Fc #{config['database']}"
121
- "runuser - postgres -c '#{pg_dump_cmd}' | bzip2 -9 > #{file_path}"
122
- end
123
-
124
113
  # TODO: remove the backup file path tools from here. Lib Utils::Backup?
125
114
  def backup_dir
126
115
  @backup_dir ||= File.expand_path(ForemanMaintain.config.db_backup_dir)
127
116
  end
128
117
 
129
- def perform_backup(config = configuration)
130
- file_path = backup_file_path(config)
131
- backup_cmd = backup_db_command(file_path, config)
132
- execute!(backup_cmd, :hidden_patterns => [config['password']])
133
- puts "\n Note: Database backup file path - #{file_path}"
134
- puts "\n In case of any exception, use above dump file to restore DB."
135
- end
136
-
137
- def table_exist?(table_name)
138
- sql = <<-SQL
139
- SELECT EXISTS ( SELECT *
140
- FROM information_schema.tables WHERE table_name = '#{table_name}' )
141
- SQL
142
- result = query(sql)
143
- return false if result.nil? || (result && result.empty?)
144
-
145
- result.first['exists'].eql?('t')
146
- end
147
-
148
- def delete_records_by_ids(tbl_name, rec_ids)
149
- quotize_rec_ids = rec_ids.map { |el| "'#{el}'" }.join(',')
150
- unless quotize_rec_ids.empty?
151
- psql(<<-SQL)
152
- BEGIN;
153
- DELETE FROM #{tbl_name} WHERE id IN (#{quotize_rec_ids});
154
- COMMIT;
155
- SQL
156
- end
157
- end
158
-
159
118
  def find_base_directory(directory)
160
119
  find_dir_containing_file(directory, 'postgresql.conf')
161
120
  end
@@ -100,13 +100,13 @@ module ForemanMaintain
100
100
  end
101
101
 
102
102
  def packages_action(action, packages, options = {})
103
- options.validate_options!(:assumeyes, :yum_options)
103
+ options.validate_options!(:assumeyes, :dnf_options)
104
104
  case action
105
105
  when :install
106
106
  package_manager.install(packages, :assumeyes => options[:assumeyes])
107
107
  when :update
108
108
  package_manager.update(packages, :assumeyes => options[:assumeyes],
109
- :yum_options => options[:yum_options])
109
+ :dnf_options => options[:dnf_options])
110
110
  when :remove
111
111
  package_manager.remove(packages, :assumeyes => options[:assumeyes])
112
112
  else