foreman_maintain 1.2.8 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -4
  3. data/bin/foreman-maintain +1 -1
  4. data/bin/foreman-maintain-complete +5 -5
  5. data/definitions/checks/candlepin/db_up.rb +1 -1
  6. data/definitions/checks/candlepin/validate_db.rb +2 -9
  7. data/definitions/checks/check_for_newer_packages.rb +5 -5
  8. data/definitions/checks/check_hotfix_installed.rb +3 -7
  9. data/definitions/checks/disk/available_space_postgresql12.rb +3 -2
  10. data/definitions/checks/disk/performance.rb +3 -3
  11. data/definitions/checks/foreman/check_corrupted_roles.rb +2 -4
  12. data/definitions/checks/foreman/check_duplicate_permission.rb +1 -1
  13. data/definitions/checks/foreman/check_duplicate_roles.rb +1 -1
  14. data/definitions/checks/foreman/check_tuning_requirements.rb +1 -1
  15. data/definitions/checks/foreman/db_up.rb +1 -1
  16. data/definitions/checks/foreman/facts_names.rb +4 -4
  17. data/definitions/checks/foreman_openscap/invalid_report_associations.rb +4 -4
  18. data/definitions/checks/foreman_proxy/check_tftp_storage.rb +4 -4
  19. data/definitions/checks/foreman_proxy/verify_dhcp_config_syntax.rb +1 -2
  20. data/definitions/checks/foreman_tasks/invalid/check_old.rb +2 -2
  21. data/definitions/checks/foreman_tasks/invalid/check_pending_state.rb +2 -2
  22. data/definitions/checks/foreman_tasks/invalid/check_planning_state.rb +2 -2
  23. data/definitions/checks/foreman_tasks/not_paused.rb +2 -2
  24. data/definitions/checks/foreman_tasks/not_running.rb +6 -6
  25. data/definitions/checks/original_assets.rb +3 -3
  26. data/definitions/checks/package_manager/yum/validate_yum_config.rb +1 -1
  27. data/definitions/checks/pulpcore/db_up.rb +1 -1
  28. data/definitions/checks/repositories/check_upstream_repository.rb +2 -2
  29. data/definitions/checks/repositories/validate.rb +2 -2
  30. data/definitions/checks/restore/validate_backup.rb +2 -2
  31. data/definitions/checks/restore/validate_hostname.rb +2 -2
  32. data/definitions/checks/restore/validate_interfaces.rb +2 -2
  33. data/definitions/checks/restore/validate_postgresql_dump_permissions.rb +31 -0
  34. data/definitions/checks/services_up.rb +2 -2
  35. data/definitions/features/apache.rb +1 -1
  36. data/definitions/features/candlepin.rb +1 -1
  37. data/definitions/features/candlepin_database.rb +2 -4
  38. data/definitions/features/cron.rb +3 -5
  39. data/definitions/features/dynflow_sidekiq.rb +2 -2
  40. data/definitions/features/foreman_cockpit.rb +1 -1
  41. data/definitions/features/foreman_database.rb +1 -1
  42. data/definitions/features/foreman_proxy.rb +1 -1
  43. data/definitions/features/foreman_server.rb +2 -2
  44. data/definitions/features/foreman_tasks.rb +9 -12
  45. data/definitions/features/gofer.rb +1 -1
  46. data/definitions/features/hammer.rb +4 -4
  47. data/definitions/features/installer.rb +4 -5
  48. data/definitions/features/instance.rb +12 -14
  49. data/definitions/features/katello.rb +8 -12
  50. data/definitions/features/pulpcore.rb +5 -3
  51. data/definitions/features/pulpcore_database.rb +3 -1
  52. data/definitions/features/puppet_server.rb +1 -1
  53. data/definitions/features/redis.rb +2 -18
  54. data/definitions/features/salt_server.rb +1 -1
  55. data/definitions/features/service.rb +4 -48
  56. data/definitions/features/sync_plans.rb +2 -2
  57. data/definitions/features/tar.rb +4 -3
  58. data/definitions/procedures/backup/compress_data.rb +0 -1
  59. data/definitions/procedures/backup/config_files.rb +6 -5
  60. data/definitions/procedures/backup/prepare_directory.rb +0 -2
  61. data/definitions/procedures/backup/pulp.rb +3 -3
  62. data/definitions/procedures/backup/snapshot/clean_mount.rb +1 -1
  63. data/definitions/procedures/backup/snapshot/logical_volume_confirmation.rb +1 -2
  64. data/definitions/procedures/backup/snapshot/mount_pulp.rb +2 -2
  65. data/definitions/procedures/foreman/fix_corrupted_roles.rb +3 -3
  66. data/definitions/procedures/foreman_tasks/delete.rb +3 -3
  67. data/definitions/procedures/hammer_setup.rb +1 -1
  68. data/definitions/procedures/knowledge_base_article.rb +3 -4
  69. data/definitions/procedures/packages/enable_modules.rb +1 -1
  70. data/definitions/procedures/packages/install.rb +1 -1
  71. data/definitions/procedures/packages/uninstall.rb +1 -1
  72. data/definitions/procedures/packages/update.rb +1 -1
  73. data/definitions/procedures/puppet/remove_puppet.rb +1 -2
  74. data/definitions/procedures/remote_execution/remove_existing_settingsd.rb +2 -2
  75. data/definitions/procedures/repositories/enable.rb +1 -1
  76. data/definitions/procedures/repositories/setup.rb +2 -2
  77. data/definitions/procedures/restore/candlepin_dump.rb +2 -2
  78. data/definitions/procedures/restore/configs.rb +3 -10
  79. data/definitions/procedures/restore/drop_databases.rb +2 -2
  80. data/definitions/procedures/restore/extract_files.rb +4 -17
  81. data/definitions/procedures/restore/foreman_dump.rb +2 -2
  82. data/definitions/procedures/restore/installer_reset.rb +1 -2
  83. data/definitions/procedures/restore/postgres_owner.rb +2 -2
  84. data/definitions/procedures/restore/pulpcore_dump.rb +2 -2
  85. data/definitions/procedures/selinux/set_file_security.rb +2 -2
  86. data/definitions/procedures/service/restart.rb +1 -1
  87. data/definitions/scenarios/backup.rb +44 -61
  88. data/definitions/scenarios/packages.rb +9 -9
  89. data/definitions/scenarios/restore.rb +24 -40
  90. data/definitions/scenarios/self_upgrade.rb +7 -11
  91. data/definitions/scenarios/services.rb +17 -17
  92. data/definitions/scenarios/{upgrade_to_capsule_6_13_z.rb → upgrade_to_capsule_6_14.rb} +10 -10
  93. data/definitions/scenarios/{upgrade_to_capsule_6_12_z.rb → upgrade_to_capsule_6_14_z.rb} +11 -11
  94. data/definitions/scenarios/{upgrade_to_satellite_6_13_z.rb → upgrade_to_satellite_6_14.rb} +11 -11
  95. data/definitions/scenarios/{upgrade_to_satellite_6_12_z.rb → upgrade_to_satellite_6_14_z.rb} +11 -12
  96. data/extras/foreman_protector/foreman-protector.whitelist +0 -6
  97. data/lib/foreman_maintain/cli/advanced/prebuild_bash_completion.rb +1 -1
  98. data/lib/foreman_maintain/cli/advanced_command.rb +2 -2
  99. data/lib/foreman_maintain/cli/backup_command.rb +17 -17
  100. data/lib/foreman_maintain/cli/base.rb +13 -13
  101. data/lib/foreman_maintain/cli/maintenance_mode_command.rb +1 -1
  102. data/lib/foreman_maintain/cli/plugin_command.rb +1 -1
  103. data/lib/foreman_maintain/cli/restore_command.rb +4 -4
  104. data/lib/foreman_maintain/cli/self_upgrade_command.rb +2 -2
  105. data/lib/foreman_maintain/cli/service_command.rb +2 -2
  106. data/lib/foreman_maintain/cli/transform_clamp_options.rb +1 -1
  107. data/lib/foreman_maintain/cli/upgrade_command.rb +7 -7
  108. data/lib/foreman_maintain/cli.rb +1 -11
  109. data/lib/foreman_maintain/concerns/base_database.rb +8 -17
  110. data/lib/foreman_maintain/concerns/downstream.rb +6 -64
  111. data/lib/foreman_maintain/concerns/firewall/iptables_maintenance_mode.rb +1 -1
  112. data/lib/foreman_maintain/concerns/foreman_and_katello_version_map.rb +1 -1
  113. data/lib/foreman_maintain/concerns/os_facts.rb +0 -8
  114. data/lib/foreman_maintain/concerns/primary_checks.rb +6 -5
  115. data/lib/foreman_maintain/concerns/pulp_common.rb +1 -8
  116. data/lib/foreman_maintain/concerns/system_helpers.rb +3 -6
  117. data/lib/foreman_maintain/concerns/upstream.rb +3 -3
  118. data/lib/foreman_maintain/config.rb +6 -6
  119. data/lib/foreman_maintain/core_ext.rb +2 -2
  120. data/lib/foreman_maintain/executable.rb +7 -9
  121. data/lib/foreman_maintain/package_manager/apt.rb +2 -2
  122. data/lib/foreman_maintain/package_manager/base.rb +0 -2
  123. data/lib/foreman_maintain/package_manager/dnf.rb +2 -2
  124. data/lib/foreman_maintain/package_manager/yum.rb +2 -3
  125. data/lib/foreman_maintain/package_manager.rb +1 -3
  126. data/lib/foreman_maintain/param.rb +2 -2
  127. data/lib/foreman_maintain/reporter/cli_reporter.rb +6 -7
  128. data/lib/foreman_maintain/reporter.rb +15 -10
  129. data/lib/foreman_maintain/repository_manager/el.rb +2 -10
  130. data/lib/foreman_maintain/repository_manager.rb +2 -1
  131. data/lib/foreman_maintain/runner.rb +5 -5
  132. data/lib/foreman_maintain/scenario.rb +4 -2
  133. data/lib/foreman_maintain/upgrade_runner.rb +0 -2
  134. data/lib/foreman_maintain/utils/backup.rb +27 -111
  135. data/lib/foreman_maintain/utils/bash.rb +18 -19
  136. data/lib/foreman_maintain/utils/command_runner.rb +5 -9
  137. data/lib/foreman_maintain/utils/hash_tools.rb +5 -5
  138. data/lib/foreman_maintain/utils/response.rb +1 -0
  139. data/lib/foreman_maintain/utils/service/remote_db.rb +1 -0
  140. data/lib/foreman_maintain/utils/service/systemd.rb +3 -5
  141. data/lib/foreman_maintain/utils/service.rb +1 -1
  142. data/lib/foreman_maintain/utils.rb +0 -1
  143. data/lib/foreman_maintain/version.rb +1 -1
  144. data/lib/foreman_maintain/yaml_storage.rb +1 -0
  145. data/lib/foreman_maintain.rb +3 -3
  146. metadata +34 -79
  147. data/definitions/checks/foreman/check_https_proxies.rb +0 -34
  148. data/definitions/checks/mongo/db_up.rb +0 -33
  149. data/definitions/checks/mongo/tools_installed.rb +0 -31
  150. data/definitions/checks/pulpcore/group_ownership_check.rb +0 -18
  151. data/definitions/checks/puppet/provide_upgrade_guide.rb +0 -35
  152. data/definitions/checks/puppet/warn_about_puppet_removal.rb +0 -35
  153. data/definitions/checks/remote_execution/verify_settings_file_already_exists.rb +0 -42
  154. data/definitions/features/mongo.rb +0 -217
  155. data/definitions/features/pulp2.rb +0 -35
  156. data/definitions/procedures/backup/offline/mongo.rb +0 -56
  157. data/definitions/procedures/backup/online/mongo.rb +0 -21
  158. data/definitions/procedures/backup/snapshot/mount_mongo.rb +0 -43
  159. data/definitions/procedures/candlepin/delete_orphaned_records_from_env_content.rb +0 -40
  160. data/definitions/procedures/content/fix_pulpcore_artifact_permissions.rb +0 -31
  161. data/definitions/procedures/content/migration_reset.rb +0 -12
  162. data/definitions/procedures/content/migration_stats.rb +0 -12
  163. data/definitions/procedures/content/prepare.rb +0 -17
  164. data/definitions/procedures/content/prepare_abort.rb +0 -12
  165. data/definitions/procedures/content/switchover.rb +0 -41
  166. data/definitions/procedures/prep_6_10_upgrade.rb +0 -29
  167. data/definitions/procedures/pulp/cleanup_old_metadata_files.rb +0 -75
  168. data/definitions/procedures/pulp/migrate.rb +0 -23
  169. data/definitions/procedures/pulp/print_remove_instructions.rb +0 -16
  170. data/definitions/procedures/pulp/remove.rb +0 -222
  171. data/definitions/procedures/restore/ensure_mongo_engine_matches.rb +0 -35
  172. data/definitions/procedures/restore/mongo_dump.rb +0 -41
  173. data/definitions/procedures/restore/regenerate_queues.rb +0 -69
  174. data/definitions/scenarios/content.rb +0 -158
  175. data/definitions/scenarios/prep_6_10_upgrade.rb +0 -13
  176. data/definitions/scenarios/upgrade_to_capsule_6_10.rb +0 -89
  177. data/definitions/scenarios/upgrade_to_capsule_6_10_z.rb +0 -88
  178. data/definitions/scenarios/upgrade_to_capsule_6_11.rb +0 -91
  179. data/definitions/scenarios/upgrade_to_capsule_6_11_z.rb +0 -90
  180. data/definitions/scenarios/upgrade_to_capsule_6_12.rb +0 -92
  181. data/definitions/scenarios/upgrade_to_capsule_6_13.rb +0 -92
  182. data/definitions/scenarios/upgrade_to_capsule_6_8.rb +0 -88
  183. data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +0 -88
  184. data/definitions/scenarios/upgrade_to_capsule_6_9.rb +0 -88
  185. data/definitions/scenarios/upgrade_to_capsule_6_9_z.rb +0 -88
  186. data/definitions/scenarios/upgrade_to_satellite_6_10.rb +0 -113
  187. data/definitions/scenarios/upgrade_to_satellite_6_10_z.rb +0 -89
  188. data/definitions/scenarios/upgrade_to_satellite_6_11.rb +0 -96
  189. data/definitions/scenarios/upgrade_to_satellite_6_11_z.rb +0 -91
  190. data/definitions/scenarios/upgrade_to_satellite_6_12.rb +0 -95
  191. data/definitions/scenarios/upgrade_to_satellite_6_13.rb +0 -95
  192. data/definitions/scenarios/upgrade_to_satellite_6_2.rb +0 -88
  193. data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +0 -88
  194. data/definitions/scenarios/upgrade_to_satellite_6_3.rb +0 -89
  195. data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +0 -88
  196. data/definitions/scenarios/upgrade_to_satellite_6_4.rb +0 -89
  197. data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +0 -88
  198. data/definitions/scenarios/upgrade_to_satellite_6_5.rb +0 -88
  199. data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +0 -88
  200. data/definitions/scenarios/upgrade_to_satellite_6_6.rb +0 -90
  201. data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +0 -90
  202. data/definitions/scenarios/upgrade_to_satellite_6_7.rb +0 -88
  203. data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +0 -88
  204. data/definitions/scenarios/upgrade_to_satellite_6_8.rb +0 -91
  205. data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +0 -89
  206. data/definitions/scenarios/upgrade_to_satellite_6_9.rb +0 -91
  207. data/definitions/scenarios/upgrade_to_satellite_6_9_z.rb +0 -89
  208. data/lib/foreman_maintain/cli/content_command.rb +0 -69
  209. data/lib/foreman_maintain/utils/mongo_core.rb +0 -86
@@ -33,20 +33,20 @@ module ForemanMaintain
33
33
  def common_backup_options
34
34
  # TODO: BACKUP_DIR in f-m config - should be default?
35
35
  parameter 'BACKUP_DIR', 'Path to backup dir',
36
- :completion => { :type => :directory },
37
- :attribute_name => :backup_root_dir do |dir|
36
+ :completion => { :type => :directory },
37
+ :attribute_name => :backup_root_dir do |dir|
38
38
  File.expand_path(dir)
39
39
  end
40
40
  option ['-s', '--skip-pulp-content'], :flag, 'Do not backup Pulp content'
41
41
  option ['-p', '--preserve-directory'], :flag, 'Do not create a time-stamped subdirectory'
42
42
  option ['-t', '--split-pulp-tar'], 'SPLIT_SIZE',
43
- 'Split pulp data into files of a specified size, i.e. (100M, 50G). ' \
44
- "See '--tape-length' in 'info tar' for all sizes" do |size|
43
+ 'Split pulp data into files of a specified size, i.e. (100M, 50G). ' \
44
+ "See '--tape-length' in 'info tar' for all sizes" do |size|
45
45
  self.class.valid_tape_size(size)
46
46
  end
47
47
  option ['-i', '--incremental'], 'PREVIOUS_BACKUP_DIR',
48
- 'Backup changes since previous backup',
49
- :completion => { :type => :directory } do |dir|
48
+ 'Backup changes since previous backup',
49
+ :completion => { :type => :directory } do |dir|
50
50
  unless File.directory?(dir)
51
51
  raise ArgumentError, "Previous backup directory does not exist: #{dir}"
52
52
  end
@@ -55,8 +55,8 @@ module ForemanMaintain
55
55
  end
56
56
  proxy_name = ForemanMaintain.detector.feature(:capsule) ? 'Capsule' : 'Foreman Proxy'
57
57
  option '--features', 'FEATURES',
58
- "#{proxy_name} features to include in the backup. " \
59
- 'Valid features are tftp, dns, dhcp, openscap, and all.', :multivalued => true
58
+ "#{proxy_name} features to include in the backup. " \
59
+ 'Valid features are tftp, dns, dhcp, openscap, and all.', :multivalued => true
60
60
  end
61
61
  # rubocop:enable Metrics/MethodLength
62
62
 
@@ -76,7 +76,7 @@ module ForemanMaintain
76
76
  Scenarios::BackupRescueCleanup.new({
77
77
  :backup_dir => backup_dir,
78
78
  :strategy => strategy,
79
- :preserve_dir => preserve_directory?
79
+ :preserve_dir => preserve_directory?,
80
80
  }.merge(options))
81
81
  end
82
82
 
@@ -88,7 +88,7 @@ module ForemanMaintain
88
88
  :proxy_features => features,
89
89
  :tar_volume_size => split_pulp_tar,
90
90
  :skip_pulp_content => skip_pulp_content?,
91
- :incremental_dir => incremental
91
+ :incremental_dir => incremental,
92
92
  }.merge(options))
93
93
  end
94
94
 
@@ -123,7 +123,7 @@ module ForemanMaintain
123
123
 
124
124
  def execute
125
125
  perform_backup(:offline,
126
- :include_db_dumps => include_db_dumps?)
126
+ :include_db_dumps => include_db_dumps?)
127
127
  end
128
128
  end
129
129
 
@@ -133,21 +133,21 @@ module ForemanMaintain
133
133
  common_backup_options
134
134
  option '--include-db-dumps', :flag, 'Also dump full database schema before snapshot backup'
135
135
  option ['-d', '--snapshot-mount-dir'], 'SNAPSHOT_MOUNT_DIR',
136
- "Override default directory ('/var/snap/') where the snapshots will be mounted",
137
- :default => '/var/snap/' do |dir|
136
+ "Override default directory ('/var/snap/') where the snapshots will be mounted",
137
+ :default => '/var/snap/' do |dir|
138
138
  unless File.directory?(dir)
139
139
  raise ArgumentError, "Snapshot mount directory does not exist: #{dir}"
140
140
  end
141
141
  dir
142
142
  end
143
143
  option ['-b', '--snapshot-block-size'], 'SNAPSHOT_BLOCK_SIZE',
144
- 'Override default block size (2G)', :default => '2G'
144
+ 'Override default block size (2G)', :default => '2G'
145
145
 
146
146
  def execute
147
147
  perform_backup(:snapshot,
148
- :snapshot_mount_dir => snapshot_mount_dir,
149
- :snapshot_block_size => snapshot_block_size,
150
- :include_db_dumps => include_db_dumps?)
148
+ :snapshot_mount_dir => snapshot_mount_dir,
149
+ :snapshot_block_size => snapshot_block_size,
150
+ :include_db_dumps => include_db_dumps?)
151
151
  end
152
152
  end
153
153
 
@@ -57,10 +57,10 @@ module ForemanMaintain
57
57
  def run_scenario(scenarios, rescue_scenario = nil)
58
58
  @runner ||=
59
59
  ForemanMaintain::Runner.new(reporter, scenarios,
60
- :assumeyes => option_wrapper('assumeyes?'),
61
- :whitelist => option_wrapper('whitelist') || [],
62
- :force => option_wrapper('force?'),
63
- :rescue_scenario => rescue_scenario)
60
+ :assumeyes => option_wrapper('assumeyes?'),
61
+ :whitelist => option_wrapper('whitelist') || [],
62
+ :force => option_wrapper('force?'),
63
+ :rescue_scenario => rescue_scenario)
64
64
  runner.run
65
65
  end
66
66
 
@@ -135,8 +135,8 @@ module ForemanMaintain
135
135
 
136
136
  def self.label_option
137
137
  option '--label', 'label',
138
- 'Run only a specific check with a label. ' \
139
- '(Use "list" command to see available labels)' do |label|
138
+ 'Run only a specific check with a label. ' \
139
+ '(Use "list" command to see available labels)' do |label|
140
140
  raise ArgumentError, 'value not specified' if label.nil? || label.empty?
141
141
  underscorize(label).to_sym
142
142
  end
@@ -144,9 +144,9 @@ module ForemanMaintain
144
144
 
145
145
  def self.tags_option
146
146
  option('--tags', 'tags',
147
- 'Run only those with all specific set of tags. ' \
148
- '(Use list-tags command to see available tags)',
149
- :multivalued => true) do |tags|
147
+ 'Run only those with all specific set of tags. ' \
148
+ '(Use list-tags command to see available tags)',
149
+ :multivalued => true) do |tags|
150
150
  raise ArgumentError, 'value not specified' if tags.nil? || tags.empty?
151
151
  tags.map { |tag| underscorize(tag).to_sym }
152
152
  end
@@ -158,14 +158,14 @@ module ForemanMaintain
158
158
 
159
159
  if opts.include?('assumeyes')
160
160
  option ['-y', '--assumeyes'], :flag,
161
- 'Automatically answer yes for all questions' do |assume|
161
+ 'Automatically answer yes for all questions' do |assume|
162
162
  ForemanMaintain.reporter.assumeyes = assume
163
163
  end
164
164
  end
165
165
 
166
166
  if opts.include?('whitelist')
167
167
  option(['-w', '--whitelist'], 'whitelist',
168
- 'Comma-separated list of labels of steps to be skipped') do |whitelist|
168
+ 'Comma-separated list of labels of steps to be skipped') do |whitelist|
169
169
  raise ArgumentError, 'value not specified' if whitelist.nil? || whitelist.empty?
170
170
  whitelist.split(',').map(&:strip)
171
171
  end
@@ -173,12 +173,12 @@ module ForemanMaintain
173
173
 
174
174
  if opts.include?('force')
175
175
  option ['-f', '--force'], :flag,
176
- 'Force steps that would be skipped as they were already run'
176
+ 'Force steps that would be skipped as they were already run'
177
177
  end
178
178
 
179
179
  if opts.include?('plaintext')
180
180
  option(['--plaintext'], :flag,
181
- 'Print the output in plaintext and disable the spinner') do |plaintext|
181
+ 'Print the output in plaintext and disable the spinner') do |plaintext|
182
182
  ForemanMaintain.reporter.plaintext = plaintext
183
183
  end
184
184
  end
@@ -42,7 +42,7 @@ module ForemanMaintain
42
42
  end
43
43
 
44
44
  def fetch_procedure(scenario, procedure_class_name)
45
- scenario.steps.find { |procedure| procedure.class.eql?(procedure_class_name) }
45
+ scenario.steps.find { |procedure| procedure.instance_of?(procedure_class_name) }
46
46
  end
47
47
  end
48
48
  end
@@ -3,7 +3,7 @@ module ForemanMaintain
3
3
  class PluginCommand < Base
4
4
  subcommand 'purge-puppet', 'Remove the Puppet feature' do
5
5
  option ['-f', '--remove-all-data'], :flag, 'Purge all the Puppet data',
6
- :attribute_name => :remove_data
6
+ :attribute_name => :remove_data
7
7
 
8
8
  def execute
9
9
  run_scenarios_and_exit(Scenarios::Puppet::RemovePuppet.new(:remove_data => remove_data?))
@@ -3,13 +3,13 @@ module ForemanMaintain
3
3
  class RestoreCommand < Base
4
4
  interactive_option
5
5
  parameter 'BACKUP_DIR', 'Path to backup directory to restore',
6
- :attribute_name => :backup_dir, :completion => { :type => :directory }
6
+ :attribute_name => :backup_dir, :completion => { :type => :directory }
7
7
 
8
8
  option ['-i', '--incremental'], :flag, 'Restore an incremental backup',
9
- :attribute_name => :incremental, :completion => { :type => :directory }
9
+ :attribute_name => :incremental, :completion => { :type => :directory }
10
10
  option ['-n', '--dry-run'], :flag,
11
- 'Check if backup could be restored, without performing the restore',
12
- :attribute_name => :dry_run
11
+ 'Check if backup could be restored, without performing the restore',
12
+ :attribute_name => :dry_run
13
13
 
14
14
  def execute
15
15
  scenario = Scenarios::Restore.new(
@@ -2,8 +2,8 @@ module ForemanMaintain
2
2
  module Cli
3
3
  class SelfUpgradeCommand < Base
4
4
  option ['--maintenance-repo-label'], 'REPOSITORY_LABEL',\
5
- 'Repository label from which packages should be updated.'\
6
- 'This can be used when standard CDN repositories are unavailable.'
5
+ 'Repository label from which packages should be updated.'\
6
+ 'This can be used when standard CDN repositories are unavailable.'
7
7
  def execute
8
8
  run_scenario(upgrade_scenario)
9
9
  end
@@ -35,8 +35,8 @@ module ForemanMaintain
35
35
  service_options
36
36
  if feature(:katello)
37
37
  option ['-p', '--wait-for-server-response', '--wait-for-hammer-ping'], :flag,
38
- 'Wait for hammer ping to return successfully before terminating',
39
- :attribute_name => :wait_for_server_response
38
+ 'Wait for hammer ping to return successfully before terminating',
39
+ :attribute_name => :wait_for_server_response
40
40
  end
41
41
 
42
42
  def execute
@@ -26,7 +26,7 @@ module ForemanMaintain
26
26
  private
27
27
 
28
28
  def option_sym(option)
29
- option = underscorize(option.switches.first[2..-1].to_s)
29
+ option = underscorize(option.switches.first[2..].to_s)
30
30
  option.to_sym unless option.empty?
31
31
  end
32
32
 
@@ -3,20 +3,20 @@ module ForemanMaintain
3
3
  class UpgradeCommand < Base
4
4
  def self.target_version_option
5
5
  option '--target-version', 'TARGET_VERSION', 'Target version of the upgrade',
6
- :required => false
6
+ :required => false
7
7
  end
8
8
 
9
9
  def self.disable_self_upgrade_option
10
10
  option '--disable-self-upgrade', :flag, 'Disable automatic self upgrade',
11
- :default => false
11
+ :default => false
12
12
  end
13
13
 
14
14
  def current_target_version
15
15
  current_target_version = ForemanMaintain::UpgradeRunner.current_target_version
16
16
  if current_target_version && target_version && target_version != current_target_version
17
17
  raise Error::UsageError,
18
- "Can't set target version #{target_version}, "\
19
- "#{current_target_version} already in progress"
18
+ "Can't set target version #{target_version}, "\
19
+ "#{current_target_version} already in progress"
20
20
  end
21
21
  @target_version = current_target_version if current_target_version
22
22
  return true if current_target_version
@@ -43,9 +43,9 @@ module ForemanMaintain
43
43
  return @upgrade_runner if defined? @upgrade_runner
44
44
  validate_target_version!
45
45
  @upgrade_runner = ForemanMaintain::UpgradeRunner.new(target_version, reporter,
46
- :assumeyes => assumeyes?,
47
- :whitelist => whitelist || [],
48
- :force => force?).tap(&:load)
46
+ :assumeyes => assumeyes?,
47
+ :whitelist => whitelist || [],
48
+ :force => force?).tap(&:load)
49
49
  end
50
50
 
51
51
  def print_versions(target_versions)
@@ -10,7 +10,6 @@ require 'foreman_maintain/cli/service_command'
10
10
  require 'foreman_maintain/cli/restore_command'
11
11
  require 'foreman_maintain/cli/maintenance_mode_command'
12
12
  require 'foreman_maintain/cli/packages_command'
13
- require 'foreman_maintain/cli/content_command'
14
13
  require 'foreman_maintain/cli/plugin_command'
15
14
  require 'foreman_maintain/cli/self_upgrade_command'
16
15
 
@@ -26,19 +25,10 @@ module ForemanMaintain
26
25
  subcommand 'restore', 'Restore a backup', RestoreCommand
27
26
  subcommand 'packages', 'Lock/Unlock package protection, install, update', PackagesCommand
28
27
  subcommand 'advanced', 'Advanced tools for server maintenance', AdvancedCommand
29
- subcommand 'content', 'Content related commands', ContentCommand
30
28
  subcommand 'plugin', 'Manage optional plugins on your server', PluginCommand
31
29
  subcommand 'self-upgrade', 'Perform major version self upgrade', SelfUpgradeCommand
32
30
  subcommand 'maintenance-mode', 'Control maintenance-mode for application',
33
- MaintenanceModeCommand
34
- if ForemanMaintain.detector.feature(:satellite) &&
35
- ForemanMaintain.detector.feature(:satellite).current_minor_version == '6.9'
36
- subcommand 'prep-6.10-upgrade', 'Preparations for the Satellite 6.10 upgrade' do
37
- def execute
38
- run_scenarios_and_exit(Scenarios::Prep610Upgrade.new)
39
- end
40
- end
41
- end
31
+ MaintenanceModeCommand
42
32
 
43
33
  def run(*arguments)
44
34
  logger.info("Running foreman-maintain command with arguments #{arguments.inspect}")
@@ -2,9 +2,7 @@ module ForemanMaintain
2
2
  module Concerns
3
3
  module BaseDatabase
4
4
  def data_dir
5
- if el7? && package_manager.installed?('rh-postgresql12-postgresql-server-syspaths')
6
- '/var/opt/rh/rh-postgresql12/lib/pgsql/data/'
7
- elsif debian_or_ubuntu?
5
+ if debian_or_ubuntu?
8
6
  deb_postgresql_data_dir
9
7
  else
10
8
  '/var/lib/pgsql/data/'
@@ -39,20 +37,13 @@ module ForemanMaintain
39
37
  end
40
38
  end
41
39
 
42
- def restore_transform
43
- if el8?
44
- # this allows to transform an EL7 backup to EL8 paths
45
- 's,^var/opt/rh/rh-postgresql12/,var/,S'
46
- end
47
- end
48
-
49
40
  def configuration
50
41
  raise NotImplementedError
51
42
  end
52
43
 
53
44
  def config_files
54
45
  [
55
- '/etc/systemd/system/postgresql.service'
46
+ '/etc/systemd/system/postgresql.service',
56
47
  ]
57
48
  end
58
49
 
@@ -71,8 +62,8 @@ module ForemanMaintain
71
62
  def psql(query, config = configuration)
72
63
  if ping(config)
73
64
  execute(psql_command(config),
74
- :stdin => query,
75
- :hidden_patterns => [config['password']])
65
+ :stdin => query,
66
+ :hidden_patterns => [config['password']])
76
67
  else
77
68
  raise_service_error
78
69
  end
@@ -80,8 +71,8 @@ module ForemanMaintain
80
71
 
81
72
  def ping(config = configuration)
82
73
  execute?(psql_command(config),
83
- :stdin => 'SELECT 1 as ping',
84
- :hidden_patterns => [config['password']])
74
+ :stdin => 'SELECT 1 as ping',
75
+ :hidden_patterns => [config['password']])
85
76
  end
86
77
 
87
78
  def backup_file_path(config = configuration)
@@ -116,8 +107,8 @@ module ForemanMaintain
116
107
  tar_options = {
117
108
  :archive => backup_file,
118
109
  :command => command,
119
- :transform => "s,^,#{dir[1..-1]},S",
120
- :files => '*'
110
+ :transform => "s,^,#{dir[1..]},S",
111
+ :files => '*',
121
112
  }.merge(extra_tar_options)
122
113
  feature(:tar).run(tar_options)
123
114
  end
@@ -53,85 +53,27 @@ module ForemanMaintain
53
53
  rh_repos = main_rh_repos
54
54
  server_version_full = "#{server_version.major}.#{server_version.minor}"
55
55
  rh_repos.concat(product_specific_repos(server_version_full))
56
- if server_version > version('6.3')
57
- ansible_repo = ansible_repo(server_version)
58
- rh_repos << ansible_repo if ansible_repo
59
- end
60
-
61
56
  rh_repos
62
57
  end
63
58
 
64
- def ansible_repo(server_version)
65
- if server_version >= version('6.8')
66
- ansible_version = '2.9'
67
- elsif server_version >= version('6.6')
68
- ansible_version = '2.8'
69
- elsif server_version >= version('6.4')
70
- ansible_version = '2.6'
71
- end
72
-
73
- if el7?
74
- "rhel-#{el_major_version}-server-ansible-#{ansible_version}-rpms"
75
- end
76
- end
77
-
78
59
  def use_beta_repos?
79
60
  ENV['FOREMAN_MAINTAIN_USE_BETA'] == '1'
80
61
  end
81
62
 
82
63
  def product_specific_repos(full_version)
83
- maj_version = full_version[0]
84
- repos = if el7? && use_beta_repos?
85
- ["rhel-server-#{el_major_version}-#{package_name}-#{maj_version}-beta-rpms"]
86
- elsif el7?
87
- ["rhel-#{el_major_version}-server-#{package_name}-#{full_version}-rpms"]
88
- elsif use_beta_repos?
89
- ["#{package_name}-#{maj_version}-beta-for-rhel-#{el_major_version}-x86_64-rpms"]
90
- else
91
- ["#{package_name}-#{full_version}-for-rhel-#{el_major_version}-x86_64-rpms"]
92
- end
93
-
94
- repos << puppet4_repo(full_version) unless puppet4_repo(full_version).nil?
64
+ repos = ["#{package_name}-#{full_version}-for-rhel-#{el_major_version}-x86_64-rpms"]
95
65
  repos.concat(common_repos(full_version))
96
66
  end
97
67
 
98
- def puppet4_repo(full_version)
99
- if current_minor_version == '6.3' && full_version.to_s != '6.4' && (
100
- feature(:puppet_server) && feature(:puppet_server).puppet_version.major == 4)
101
- "rhel-#{el_major_version}-server-#{package_name}-tools-6.3-puppet4-rpms"
102
- end
103
- end
104
-
105
68
  def common_repos(full_version)
106
- sat_maint_version = if version(full_version) >= version('6.11') && !use_beta_repos?
107
- full_version
108
- else
109
- full_version[0]
110
- end
111
-
112
- # rubocop:disable Metrics/LineLength
113
- repos = if el7? && use_beta_repos?
114
- ["rhel-#{el_major_version}-server-satellite-maintenance-#{sat_maint_version}-beta-rpms"]
115
- elsif el7?
116
- ["rhel-#{el_major_version}-server-satellite-maintenance-#{sat_maint_version}-rpms"]
117
- elsif use_beta_repos?
118
- ["satellite-maintenance-#{sat_maint_version}-beta-for-rhel-#{el_major_version}-x86_64-rpms"]
119
- else
120
- ["satellite-maintenance-#{sat_maint_version}-for-rhel-#{el_major_version}-x86_64-rpms"]
121
- end
122
- # rubocop:enable Metrics/LineLength
123
-
124
- repos
69
+ ["satellite-maintenance-#{full_version}-for-rhel-#{el_major_version}-x86_64-rpms"]
125
70
  end
126
71
 
127
72
  def main_rh_repos
128
- if el7?
129
- ["rhel-#{el_major_version}-server-rpms",
130
- "rhel-server-rhscl-#{el_major_version}-rpms"]
131
- else
132
- ["rhel-#{el_major_version}-for-x86_64-baseos-rpms",
133
- "rhel-#{el_major_version}-for-x86_64-appstream-rpms"]
134
- end
73
+ [
74
+ "rhel-#{el_major_version}-for-x86_64-baseos-rpms",
75
+ "rhel-#{el_major_version}-for-x86_64-appstream-rpms",
76
+ ]
135
77
  end
136
78
 
137
79
  def version_from_source
@@ -8,7 +8,7 @@ module ForemanMaintain
8
8
 
9
9
  def enable_maintenance_mode
10
10
  add_chain(custom_chain_name,
11
- ['-i lo -j ACCEPT', '-p tcp --dport 443 -j REJECT'])
11
+ ['-i lo -j ACCEPT', '-p tcp --dport 443 -j REJECT'])
12
12
  end
13
13
 
14
14
  def maintenance_mode_status?
@@ -2,7 +2,7 @@ module ForemanMaintain
2
2
  module Concerns
3
3
  module ForemanAndKatelloVersionMap
4
4
  FOREMAN_AND_KATELLO_VERSION_MAP = {
5
- 'nightly' => 'nightly'
5
+ 'nightly' => 'nightly',
6
6
  }.freeze
7
7
 
8
8
  def foreman_version_by_katello(version)
@@ -62,14 +62,6 @@ module ForemanMaintain
62
62
  os_id == 'ubuntu'
63
63
  end
64
64
 
65
- def el7?
66
- el_major_version == 7
67
- end
68
-
69
- def el8?
70
- el_major_version == 8
71
- end
72
-
73
65
  def el_major_version
74
66
  os_version_id.to_i if el?
75
67
  end
@@ -2,19 +2,20 @@ module ForemanMaintain
2
2
  module Concerns
3
3
  module PrimaryChecks
4
4
  def validate_downstream_packages
5
- return unless detector.feature(:installer) && detector.feature(:installer).with_scenarios?
5
+ return unless detector.feature(:installer)&.with_scenarios?
6
6
  if (package = package_name) && !package_manager.installed?(package)
7
7
  raise ForemanMaintain::Error::Fail,
8
- "Error: Important rpm package #{package} is not installed!"\
9
- "\nInstall #{package} rpm to ensure system consistency."
8
+ "Error: Important rpm package #{package} is not installed!"\
9
+ "\nInstall #{package} rpm to ensure system consistency."
10
10
  end
11
11
  end
12
12
 
13
13
  def package_name
14
14
  installed_scenario = detector.feature(:installer).last_scenario
15
- if installed_scenario == 'satellite'
15
+ case installed_scenario
16
+ when 'satellite'
16
17
  'satellite'
17
- elsif installed_scenario == 'capsule'
18
+ when 'capsule'
18
19
  'satellite-capsule'
19
20
  end
20
21
  end
@@ -6,16 +6,9 @@ module ForemanMaintain
6
6
  end
7
7
 
8
8
  def exclude_from_backup
9
- # For pulp2:
10
- # Exclude /var/lib/pulp/katello-export and /var/lib/pulp/cache
11
- # since the tar is run from /var/lib/pulp, list subdir paths only
12
- # For pulp3/pulpcore:
13
- pulp2_dirs = %w[katello-export cache]
14
- # For pulp3/pulpcore:
15
9
  # Only need to backup media directory of /var/lib/pulp
16
10
  # All below directories and their contents are regenerated on installer run
17
- pulpcore_dirs = %w[assets exports imports sync_imports tmp]
18
- pulp2_dirs + pulpcore_dirs
11
+ %w[assets exports imports sync_imports tmp]
19
12
  end
20
13
  end
21
14
  end
@@ -127,7 +127,7 @@ module ForemanMaintain
127
127
  def parse_csv(data)
128
128
  parsed_data = CSV.parse(data)
129
129
  header = parsed_data.first
130
- parsed_data[1..-1].map do |row|
130
+ parsed_data[1..].map do |row|
131
131
  Hash[*header.zip(row).flatten(1)]
132
132
  end
133
133
  end
@@ -191,11 +191,9 @@ module ForemanMaintain
191
191
  ForemanMaintain.repository_manager
192
192
  end
193
193
 
194
- def ruby_prefix(scl = true)
194
+ def ruby_prefix
195
195
  if debian_or_ubuntu?
196
196
  'ruby-'
197
- elsif el7? && scl
198
- 'tfm-rubygem-'
199
197
  else
200
198
  'rubygem-'
201
199
  end
@@ -213,8 +211,7 @@ module ForemanMaintain
213
211
  else
214
212
  proxy_plugin_prefix = 'smart_proxy_'
215
213
  end
216
- scl = check_min_version('foreman-proxy', '2.0')
217
- ruby_prefix(scl) + proxy_plugin_prefix + plugin
214
+ ruby_prefix + proxy_plugin_prefix + plugin
218
215
  end
219
216
 
220
217
  def hammer_plugin_name(plugin)
@@ -86,7 +86,7 @@ module ForemanMaintain
86
86
  repoids_and_urls = {}
87
87
  repository_manager.enabled_repos.each do |repo, url|
88
88
  repo_urls.each do |regex|
89
- repoids_and_urls[repo] = url if url =~ regex
89
+ repoids_and_urls[repo] = url if url&.match?(regex)
90
90
  end
91
91
  end
92
92
  repoids_and_urls
@@ -95,8 +95,8 @@ module ForemanMaintain
95
95
  private
96
96
 
97
97
  def repo_urls
98
- [%r{yum.theforeman.org\/*},
99
- %r{yum.puppetlabs.com\/*}]
98
+ [%r{yum.theforeman.org/*},
99
+ %r{yum.puppetlabs.com/*}]
100
100
  end
101
101
  end
102
102
  end
@@ -2,17 +2,17 @@ require 'fileutils'
2
2
  module ForemanMaintain
3
3
  class Config
4
4
  attr_accessor :pre_setup_log_messages,
5
- :config_file, :definitions_dirs, :log_level, :log_dir, :log_file_size,
6
- :log_filename, :storage_file, :backup_dir, :foreman_proxy_cert_path,
7
- :db_backup_dir, :completion_cache_file, :disable_commands, :manage_crond,
8
- :foreman_url, :foreman_port
5
+ :config_file, :definitions_dirs, :log_level, :log_dir, :log_file_size,
6
+ :log_filename, :storage_file, :backup_dir, :foreman_proxy_cert_path,
7
+ :db_backup_dir, :completion_cache_file, :disable_commands, :manage_crond,
8
+ :foreman_url, :foreman_port
9
9
 
10
10
  def initialize(options)
11
11
  @pre_setup_log_messages = []
12
12
  @config_file = options.fetch(:config_file, config_file_path)
13
13
  @options = load_config
14
14
  @definitions_dirs = @options.fetch(:definitions_dirs,
15
- [File.join(source_path, 'definitions')])
15
+ [File.join(source_path, 'definitions')])
16
16
  load_log_configs
17
17
  load_backup_dir_paths
18
18
  load_cron_option
@@ -68,7 +68,7 @@ module ForemanMaintain
68
68
  end
69
69
 
70
70
  def source_path
71
- File.expand_path('../../..', __FILE__)
71
+ File.expand_path('../..', __dir__)
72
72
  end
73
73
 
74
74
  def find_dir_path(dir_path_str)
@@ -10,7 +10,7 @@ module ForemanMaintain
10
10
  gsub(/^[ \t]{#{indent}}/, '')
11
11
  end
12
12
  end
13
- String.send(:include, StripHeredoc)
13
+ String.include StripHeredoc
14
14
 
15
15
  module ValidateOptions
16
16
  def validate_options!(*valid_keys)
@@ -23,6 +23,6 @@ module ForemanMaintain
23
23
  self
24
24
  end
25
25
  end
26
- Hash.send(:include, ValidateOptions)
26
+ Hash.include ValidateOptions
27
27
  end
28
28
  end