foreman_maintain 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) 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/backup/directory_ready.rb +3 -1
  6. data/definitions/checks/candlepin/db_up.rb +1 -1
  7. data/definitions/checks/candlepin/validate_db.rb +2 -9
  8. data/definitions/checks/check_for_newer_packages.rb +5 -5
  9. data/definitions/checks/check_hotfix_installed.rb +3 -7
  10. data/definitions/checks/disk/available_space_postgresql12.rb +3 -2
  11. data/definitions/checks/disk/performance.rb +3 -3
  12. data/definitions/checks/foreman/check_corrupted_roles.rb +2 -4
  13. data/definitions/checks/foreman/check_duplicate_permission.rb +1 -1
  14. data/definitions/checks/foreman/check_duplicate_roles.rb +1 -1
  15. data/definitions/checks/foreman/check_tuning_requirements.rb +1 -1
  16. data/definitions/checks/foreman/db_up.rb +1 -1
  17. data/definitions/checks/foreman/facts_names.rb +4 -4
  18. data/definitions/checks/foreman_openscap/invalid_report_associations.rb +4 -4
  19. data/definitions/checks/foreman_proxy/check_tftp_storage.rb +4 -4
  20. data/definitions/checks/foreman_proxy/verify_dhcp_config_syntax.rb +1 -2
  21. data/definitions/checks/foreman_tasks/invalid/check_old.rb +2 -2
  22. data/definitions/checks/foreman_tasks/invalid/check_pending_state.rb +2 -2
  23. data/definitions/checks/foreman_tasks/invalid/check_planning_state.rb +2 -2
  24. data/definitions/checks/foreman_tasks/not_paused.rb +2 -2
  25. data/definitions/checks/foreman_tasks/not_running.rb +6 -6
  26. data/definitions/checks/original_assets.rb +3 -3
  27. data/definitions/checks/package_manager/yum/validate_yum_config.rb +1 -1
  28. data/definitions/checks/pulpcore/db_up.rb +1 -1
  29. data/definitions/checks/repositories/check_upstream_repository.rb +2 -2
  30. data/definitions/checks/repositories/validate.rb +2 -2
  31. data/definitions/checks/restore/validate_backup.rb +2 -2
  32. data/definitions/checks/restore/validate_hostname.rb +2 -2
  33. data/definitions/checks/restore/validate_interfaces.rb +2 -2
  34. data/definitions/checks/restore/validate_postgresql_dump_permissions.rb +31 -0
  35. data/definitions/checks/services_up.rb +2 -2
  36. data/definitions/features/apache.rb +1 -1
  37. data/definitions/features/candlepin.rb +1 -1
  38. data/definitions/features/candlepin_database.rb +2 -4
  39. data/definitions/features/cron.rb +3 -5
  40. data/definitions/features/dynflow_sidekiq.rb +2 -2
  41. data/definitions/features/foreman_cockpit.rb +1 -1
  42. data/definitions/features/foreman_database.rb +1 -1
  43. data/definitions/features/foreman_proxy.rb +1 -1
  44. data/definitions/features/foreman_server.rb +3 -7
  45. data/definitions/features/foreman_tasks.rb +9 -12
  46. data/definitions/features/gofer.rb +1 -1
  47. data/definitions/features/hammer.rb +4 -4
  48. data/definitions/features/installer.rb +4 -5
  49. data/definitions/features/instance.rb +12 -14
  50. data/definitions/features/katello.rb +8 -12
  51. data/definitions/features/pulpcore.rb +6 -30
  52. data/definitions/features/pulpcore_database.rb +3 -1
  53. data/definitions/features/puppet_server.rb +1 -1
  54. data/definitions/features/redis.rb +2 -18
  55. data/definitions/features/salt_server.rb +1 -1
  56. data/definitions/features/service.rb +4 -48
  57. data/definitions/features/sync_plans.rb +2 -2
  58. data/definitions/features/tar.rb +4 -3
  59. data/definitions/procedures/backup/compress_data.rb +0 -1
  60. data/definitions/procedures/backup/config_files.rb +6 -5
  61. data/definitions/procedures/backup/prepare_directory.rb +0 -2
  62. data/definitions/procedures/backup/pulp.rb +3 -3
  63. data/definitions/procedures/backup/snapshot/clean_mount.rb +1 -1
  64. data/definitions/procedures/backup/snapshot/logical_volume_confirmation.rb +1 -2
  65. data/definitions/procedures/backup/snapshot/mount_pulp.rb +2 -2
  66. data/definitions/procedures/foreman/fix_corrupted_roles.rb +3 -3
  67. data/definitions/procedures/foreman_tasks/delete.rb +3 -3
  68. data/definitions/procedures/hammer_setup.rb +1 -1
  69. data/definitions/procedures/knowledge_base_article.rb +3 -4
  70. data/definitions/procedures/packages/enable_modules.rb +1 -1
  71. data/definitions/procedures/packages/install.rb +1 -1
  72. data/definitions/procedures/packages/uninstall.rb +1 -1
  73. data/definitions/procedures/packages/update.rb +6 -2
  74. data/definitions/procedures/pulpcore/migrate.rb +2 -3
  75. data/definitions/procedures/pulpcore/trim_rpm_changelogs.rb +2 -3
  76. data/definitions/procedures/remote_execution/remove_existing_settingsd.rb +2 -2
  77. data/definitions/procedures/repositories/enable.rb +1 -1
  78. data/definitions/procedures/repositories/setup.rb +2 -2
  79. data/definitions/procedures/restore/candlepin_dump.rb +2 -2
  80. data/definitions/procedures/restore/configs.rb +3 -10
  81. data/definitions/procedures/restore/drop_databases.rb +2 -2
  82. data/definitions/procedures/restore/extract_files.rb +4 -17
  83. data/definitions/procedures/restore/foreman_dump.rb +2 -2
  84. data/definitions/procedures/restore/installer_reset.rb +1 -2
  85. data/definitions/procedures/restore/postgres_owner.rb +2 -2
  86. data/definitions/procedures/restore/pulpcore_dump.rb +2 -2
  87. data/definitions/procedures/selinux/set_file_security.rb +2 -2
  88. data/definitions/procedures/service/restart.rb +2 -3
  89. data/definitions/scenarios/backup.rb +47 -65
  90. data/definitions/scenarios/packages.rb +9 -9
  91. data/definitions/scenarios/restore.rb +24 -40
  92. data/definitions/scenarios/self_upgrade.rb +7 -11
  93. data/definitions/scenarios/services.rb +17 -17
  94. data/definitions/scenarios/upgrade_to_capsule_6_14.rb +3 -2
  95. data/definitions/scenarios/upgrade_to_capsule_6_14_z.rb +3 -2
  96. data/definitions/scenarios/upgrade_to_katello_nightly.rb +3 -0
  97. data/definitions/scenarios/upgrade_to_satellite_6_14.rb +3 -2
  98. data/definitions/scenarios/upgrade_to_satellite_6_14_z.rb +3 -2
  99. data/extras/foreman_protector/dnf/foreman-protector.py +4 -4
  100. data/extras/foreman_protector/foreman-protector.whitelist +0 -6
  101. data/lib/foreman_maintain/cli/advanced/prebuild_bash_completion.rb +1 -1
  102. data/lib/foreman_maintain/cli/advanced_command.rb +2 -2
  103. data/lib/foreman_maintain/cli/backup_command.rb +17 -17
  104. data/lib/foreman_maintain/cli/base.rb +13 -13
  105. data/lib/foreman_maintain/cli/maintenance_mode_command.rb +1 -1
  106. data/lib/foreman_maintain/cli/plugin_command.rb +1 -1
  107. data/lib/foreman_maintain/cli/restore_command.rb +4 -4
  108. data/lib/foreman_maintain/cli/self_upgrade_command.rb +2 -2
  109. data/lib/foreman_maintain/cli/service_command.rb +2 -2
  110. data/lib/foreman_maintain/cli/transform_clamp_options.rb +1 -1
  111. data/lib/foreman_maintain/cli/upgrade_command.rb +7 -7
  112. data/lib/foreman_maintain/cli.rb +1 -11
  113. data/lib/foreman_maintain/concerns/base_database.rb +8 -17
  114. data/lib/foreman_maintain/concerns/downstream.rb +6 -64
  115. data/lib/foreman_maintain/concerns/firewall/iptables_maintenance_mode.rb +1 -1
  116. data/lib/foreman_maintain/concerns/foreman_and_katello_version_map.rb +1 -1
  117. data/lib/foreman_maintain/concerns/os_facts.rb +0 -8
  118. data/lib/foreman_maintain/concerns/primary_checks.rb +6 -5
  119. data/lib/foreman_maintain/concerns/pulp_common.rb +5 -8
  120. data/lib/foreman_maintain/concerns/system_helpers.rb +3 -6
  121. data/lib/foreman_maintain/concerns/upstream.rb +3 -3
  122. data/lib/foreman_maintain/config.rb +7 -7
  123. data/lib/foreman_maintain/core_ext.rb +2 -2
  124. data/lib/foreman_maintain/executable.rb +7 -9
  125. data/lib/foreman_maintain/package_manager/apt.rb +2 -2
  126. data/lib/foreman_maintain/package_manager/base.rb +0 -2
  127. data/lib/foreman_maintain/package_manager/dnf.rb +2 -2
  128. data/lib/foreman_maintain/package_manager/yum.rb +3 -4
  129. data/lib/foreman_maintain/package_manager.rb +7 -9
  130. data/lib/foreman_maintain/param.rb +2 -2
  131. data/lib/foreman_maintain/reporter/cli_reporter.rb +6 -7
  132. data/lib/foreman_maintain/reporter.rb +15 -10
  133. data/lib/foreman_maintain/repository_manager/el.rb +2 -10
  134. data/lib/foreman_maintain/repository_manager.rb +2 -1
  135. data/lib/foreman_maintain/runner.rb +5 -5
  136. data/lib/foreman_maintain/scenario.rb +4 -2
  137. data/lib/foreman_maintain/upgrade_runner.rb +0 -2
  138. data/lib/foreman_maintain/utils/backup.rb +27 -111
  139. data/lib/foreman_maintain/utils/bash.rb +18 -19
  140. data/lib/foreman_maintain/utils/command_runner.rb +5 -9
  141. data/lib/foreman_maintain/utils/hash_tools.rb +5 -5
  142. data/lib/foreman_maintain/utils/response.rb +1 -0
  143. data/lib/foreman_maintain/utils/service/remote_db.rb +1 -0
  144. data/lib/foreman_maintain/utils/service/systemd.rb +7 -5
  145. data/lib/foreman_maintain/utils/service.rb +1 -1
  146. data/lib/foreman_maintain/utils.rb +0 -1
  147. data/lib/foreman_maintain/version.rb +1 -1
  148. data/lib/foreman_maintain/yaml_storage.rb +1 -0
  149. data/lib/foreman_maintain.rb +7 -6
  150. metadata +29 -78
  151. data/definitions/checks/foreman/check_https_proxies.rb +0 -34
  152. data/definitions/checks/mongo/db_up.rb +0 -33
  153. data/definitions/checks/mongo/tools_installed.rb +0 -31
  154. data/definitions/checks/pulpcore/group_ownership_check.rb +0 -18
  155. data/definitions/checks/puppet/provide_upgrade_guide.rb +0 -35
  156. data/definitions/checks/puppet/warn_about_puppet_removal.rb +0 -35
  157. data/definitions/checks/remote_execution/verify_settings_file_already_exists.rb +0 -42
  158. data/definitions/features/mongo.rb +0 -217
  159. data/definitions/features/pulp2.rb +0 -35
  160. data/definitions/procedures/backup/offline/mongo.rb +0 -56
  161. data/definitions/procedures/backup/online/mongo.rb +0 -21
  162. data/definitions/procedures/backup/snapshot/mount_mongo.rb +0 -43
  163. data/definitions/procedures/candlepin/delete_orphaned_records_from_env_content.rb +0 -40
  164. data/definitions/procedures/content/fix_pulpcore_artifact_permissions.rb +0 -31
  165. data/definitions/procedures/content/migration_reset.rb +0 -12
  166. data/definitions/procedures/content/migration_stats.rb +0 -12
  167. data/definitions/procedures/content/prepare.rb +0 -17
  168. data/definitions/procedures/content/prepare_abort.rb +0 -12
  169. data/definitions/procedures/content/switchover.rb +0 -41
  170. data/definitions/procedures/prep_6_10_upgrade.rb +0 -29
  171. data/definitions/procedures/pulp/cleanup_old_metadata_files.rb +0 -75
  172. data/definitions/procedures/pulp/migrate.rb +0 -23
  173. data/definitions/procedures/pulp/print_remove_instructions.rb +0 -16
  174. data/definitions/procedures/pulp/remove.rb +0 -222
  175. data/definitions/procedures/restore/ensure_mongo_engine_matches.rb +0 -35
  176. data/definitions/procedures/restore/mongo_dump.rb +0 -41
  177. data/definitions/procedures/restore/regenerate_queues.rb +0 -69
  178. data/definitions/scenarios/content.rb +0 -158
  179. data/definitions/scenarios/prep_6_10_upgrade.rb +0 -13
  180. data/definitions/scenarios/upgrade_to_capsule_6_10.rb +0 -89
  181. data/definitions/scenarios/upgrade_to_capsule_6_10_z.rb +0 -88
  182. data/definitions/scenarios/upgrade_to_capsule_6_11.rb +0 -91
  183. data/definitions/scenarios/upgrade_to_capsule_6_11_z.rb +0 -90
  184. data/definitions/scenarios/upgrade_to_capsule_6_12.rb +0 -92
  185. data/definitions/scenarios/upgrade_to_capsule_6_12_z.rb +0 -92
  186. data/definitions/scenarios/upgrade_to_capsule_6_13.rb +0 -92
  187. data/definitions/scenarios/upgrade_to_capsule_6_13_z.rb +0 -92
  188. data/definitions/scenarios/upgrade_to_capsule_6_8.rb +0 -88
  189. data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +0 -88
  190. data/definitions/scenarios/upgrade_to_capsule_6_9.rb +0 -88
  191. data/definitions/scenarios/upgrade_to_capsule_6_9_z.rb +0 -88
  192. data/definitions/scenarios/upgrade_to_satellite_6_10.rb +0 -113
  193. data/definitions/scenarios/upgrade_to_satellite_6_10_z.rb +0 -89
  194. data/definitions/scenarios/upgrade_to_satellite_6_11.rb +0 -96
  195. data/definitions/scenarios/upgrade_to_satellite_6_11_z.rb +0 -91
  196. data/definitions/scenarios/upgrade_to_satellite_6_12.rb +0 -95
  197. data/definitions/scenarios/upgrade_to_satellite_6_12_z.rb +0 -94
  198. data/definitions/scenarios/upgrade_to_satellite_6_13.rb +0 -95
  199. data/definitions/scenarios/upgrade_to_satellite_6_13_z.rb +0 -94
  200. data/definitions/scenarios/upgrade_to_satellite_6_2.rb +0 -88
  201. data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +0 -88
  202. data/definitions/scenarios/upgrade_to_satellite_6_3.rb +0 -89
  203. data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +0 -88
  204. data/definitions/scenarios/upgrade_to_satellite_6_4.rb +0 -89
  205. data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +0 -88
  206. data/definitions/scenarios/upgrade_to_satellite_6_5.rb +0 -88
  207. data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +0 -88
  208. data/definitions/scenarios/upgrade_to_satellite_6_6.rb +0 -90
  209. data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +0 -90
  210. data/definitions/scenarios/upgrade_to_satellite_6_7.rb +0 -88
  211. data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +0 -88
  212. data/definitions/scenarios/upgrade_to_satellite_6_8.rb +0 -91
  213. data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +0 -89
  214. data/definitions/scenarios/upgrade_to_satellite_6_9.rb +0 -91
  215. data/definitions/scenarios/upgrade_to_satellite_6_9_z.rb +0 -89
  216. data/lib/foreman_maintain/cli/content_command.rb +0 -69
  217. data/lib/foreman_maintain/utils/mongo_core.rb +0 -86
@@ -9,7 +9,7 @@ module ForemanMaintain
9
9
  answers = feature(:installer).configuration[:answer_file]
10
10
  comp_map[:expire] = {
11
11
  :file => answers,
12
- :sha1sum => execute!("sha1sum #{answers}")
12
+ :sha1sum => execute!("sha1sum #{answers}"),
13
13
  }
14
14
  cache_dir = File.dirname(ForemanMaintain.config.completion_cache_file)
15
15
  FileUtils.mkdir_p(cache_dir) unless File.directory?(cache_dir)
@@ -6,8 +6,8 @@ module ForemanMaintain
6
6
  class AdvancedCommand < Base
7
7
  subcommand 'procedure', 'Run maintain procedures manually', ProcedureCommand
8
8
  subcommand 'prebuild-bash-completion',
9
- 'Prepare map of options and subcommands for Bash completion',
10
- PrebuildBashCompletionCommand
9
+ 'Prepare map of options and subcommands for Bash completion',
10
+ PrebuildBashCompletionCommand
11
11
  end
12
12
  end
13
13
  end
@@ -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,13 @@ 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]
12
+ end
13
+
14
+ def pulpcore_manager(command)
15
+ "PULP_SETTINGS=/etc/pulp/settings.py runuser -u pulp -- pulpcore-manager #{command}"
19
16
  end
20
17
  end
21
18
  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