foreman_maintain 1.4.1 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a742f6c45bf5c57c814ba78f83ff3fb72863de35005f0e8f34a6f823de766ba5
4
- data.tar.gz: be8eb54fe3eb4d9a05d59f64ad34fc314ae97fc4be47c1aeaf4cde3b0d46b979
3
+ metadata.gz: 2d9b46e0f2566916075ef7ec1972734f31919fafaa10ce814a2e5006ece9ab62
4
+ data.tar.gz: 989952ede4062aaba32b380a5226b63e9aaa0c22ffbf34b79bc80a153a0b0920
5
5
  SHA512:
6
- metadata.gz: 4cb48844ead00af99f66d37ee2a215fe9c397f14b544774580ad5df3dc09598231f5a8a7978fbc2111bb104daa951f1d3c6a1dc2426c2f635e319ded93117e6f
7
- data.tar.gz: 7c0cea08c66ea928e2fa6659dd051d55c4ab0e9afabba61c18ad9934b1a21fd1b177d7f765e58a2885927103daf92ba8d05513d2fc0f386ec2900e546afa3cbc
6
+ metadata.gz: a9a380eb151bfadbbba33824d438dc69fe47732cf3219af14b8e78ebcb2bb8dd5ba590fc9887d936aa1eb662e644f8e085a39c2023a71e5d3d975075d37a57bb
7
+ data.tar.gz: 7725d0d13f08191822fbda79b828498d8b064a984ca8d38a841d1e400768ec6c530ea8d99c94ea35f6a62ac547455de32a9d4048d06a3d4a953fd065908385d1
@@ -0,0 +1,41 @@
1
+ require 'yaml'
2
+
3
+ class Checks::CheckKatelloAgentEnabled < ForemanMaintain::Check
4
+ metadata do
5
+ label :check_katello_agent_enabled
6
+ description 'Check whether the katello-agent feature is enabled before upgrading'
7
+ tags :pre_upgrade
8
+
9
+ confine do
10
+ !feature(:capsule)
11
+ end
12
+ end
13
+
14
+ def run
15
+ instance_name = feature(:instance).downstream ? "Satellite" : "Katello"
16
+ instance_version = feature(:instance).downstream ? "6.15" : "4.10"
17
+ installer_command = feature(:instance).downstream ? "satellite-installer" : "foreman-installer"
18
+ maintain_command = feature(:instance).downstream ? "satellite-maintain" : "foreman-maintain"
19
+
20
+ assert(
21
+ !katello_agent_enabled?,
22
+ "The katello-agent feature is enabled on this system. As of #{instance_name}"\
23
+ " #{instance_version}, katello-agent is removed and will no longer function."\
24
+ " Before proceeding with the upgrade, you should ensure that you have deployed"\
25
+ " and configured an alternative tool for remote package management and patching"\
26
+ " for content hosts, such as Remote Execution (REX) with pull-based transport."\
27
+ " See the Managing Hosts guide in the #{instance_name} documentation for more info."\
28
+ " Disable katello-agent with the command"\
29
+ " `#{installer_command} --foreman-proxy-content-enable-katello-agent false`"\
30
+ " before proceeding with the upgrade. Alternatively, you may skip this check and proceed by"\
31
+ " running #{maintain_command} again with the `--whitelist` option, which will automatically"\
32
+ " uninstall katello-agent."
33
+ )
34
+ end
35
+
36
+ private
37
+
38
+ def katello_agent_enabled?
39
+ feature(:installer).answers['foreman_proxy_content']['enable_katello_agent']
40
+ end
41
+ 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
@@ -20,7 +20,8 @@ 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
@@ -110,6 +111,12 @@ module ForemanMaintain::Scenarios
110
111
  end
111
112
  end
112
113
 
114
+ def snapshot_deprecation_warning
115
+ if strategy == :snapshot
116
+ add_step_with_context(Procedures::Backup::Snapshot::SnapshotDeprecationMessage)
117
+ end
118
+ end
119
+
113
120
  def accessibility_confirmation
114
121
  if [:offline, :snapshot].include?(strategy)
115
122
  add_step_with_context(Procedures::Backup::AccessibilityConfirmation)
@@ -122,7 +129,7 @@ module ForemanMaintain::Scenarios
122
129
  end
123
130
  end
124
131
 
125
- def check_valid_startegy
132
+ def check_valid_strategy
126
133
  unless [:online, :offline, :snapshot].include? strategy
127
134
  raise ArgumentError, "Unsupported strategy '#{strategy}'"
128
135
  end
@@ -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
@@ -87,6 +87,7 @@ module Scenarios::Capsule_6_15
87
87
  def compose
88
88
  add_steps(find_checks(:default))
89
89
  add_steps(find_checks(:post_upgrade))
90
+ add_step(Procedures::Packages::CheckForReboot)
90
91
  end
91
92
  end
92
93
  end
@@ -87,6 +87,7 @@ module Scenarios::Capsule_6_15_z
87
87
  def compose
88
88
  add_steps(find_checks(:default))
89
89
  add_steps(find_checks(:post_upgrade))
90
+ add_step(Procedures::Packages::CheckForReboot)
90
91
  end
91
92
  end
92
93
  end
@@ -89,6 +89,7 @@ module Scenarios::Satellite_6_15
89
89
  def compose
90
90
  add_steps(find_checks(:default))
91
91
  add_steps(find_checks(:post_upgrade))
92
+ add_step(Procedures::Packages::CheckForReboot)
92
93
  end
93
94
  end
94
95
  end
@@ -88,6 +88,7 @@ module Scenarios::Satellite_6_15_z
88
88
  def compose
89
89
  add_steps(find_checks(:default))
90
90
  add_steps(find_checks(:post_upgrade))
91
+ add_step(Procedures::Packages::CheckForReboot)
91
92
  end
92
93
  end
93
94
  end
@@ -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
@@ -2,7 +2,8 @@ module ForemanMaintain
2
2
  module Concerns
3
3
  module PrimaryChecks
4
4
  def validate_downstream_packages
5
- return unless detector.feature(:installer)&.with_scenarios?
5
+ return unless detector.feature(:installer)
6
+
6
7
  if (package = package_name) && !package_manager.installed?(package)
7
8
  raise ForemanMaintain::Error::Fail,
8
9
  "Error: Important rpm package #{package} is not installed!"\
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.4.1'.freeze
2
+ VERSION = '1.4.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_maintain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Nečas
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-06 00:00:00.000000000 Z
11
+ date: 2023-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -159,7 +159,6 @@ files:
159
159
  - config/hammer.yml.example
160
160
  - definitions/checks/backup/certs_tar_exist.rb
161
161
  - definitions/checks/candlepin/db_up.rb
162
- - definitions/checks/check_for_newer_packages.rb
163
162
  - definitions/checks/check_hotfix_installed.rb
164
163
  - definitions/checks/check_tmout.rb
165
164
  - definitions/checks/disk/available_space.rb
@@ -182,6 +181,7 @@ files:
182
181
  - definitions/checks/foreman_tasks/invalid/check_planning_state.rb
183
182
  - definitions/checks/foreman_tasks/not_paused.rb
184
183
  - definitions/checks/foreman_tasks/not_running.rb
184
+ - definitions/checks/katello_agent.rb
185
185
  - definitions/checks/maintenance_mode/check_consistency.rb
186
186
  - definitions/checks/non_rh_packages.rb
187
187
  - definitions/checks/package_manager/dnf/validate_dnf_config.rb
@@ -251,6 +251,7 @@ files:
251
251
  - definitions/procedures/backup/snapshot/mount_pulp.rb
252
252
  - definitions/procedures/backup/snapshot/mount_pulpcore_db.rb
253
253
  - definitions/procedures/backup/snapshot/prepare_mount.rb
254
+ - definitions/procedures/backup/snapshot/snapshot_deprecation_message.rb
254
255
  - definitions/procedures/crond/start.rb
255
256
  - definitions/procedures/crond/stop.rb
256
257
  - definitions/procedures/files/remove.rb
@@ -273,6 +274,7 @@ files:
273
274
  - definitions/procedures/maintenance_mode/disable_maintenance_mode.rb
274
275
  - definitions/procedures/maintenance_mode/enable_maintenance_mode.rb
275
276
  - definitions/procedures/maintenance_mode/is_enabled.rb
277
+ - definitions/procedures/packages/check_for_reboot.rb
276
278
  - definitions/procedures/packages/check_update.rb
277
279
  - definitions/procedures/packages/enable_modules.rb
278
280
  - definitions/procedures/packages/install.rb
@@ -424,7 +426,7 @@ homepage: https://github.com/theforeman/foreman_maintain
424
426
  licenses:
425
427
  - GPL-3.0
426
428
  metadata: {}
427
- post_install_message:
429
+ post_install_message:
428
430
  rdoc_options: []
429
431
  require_paths:
430
432
  - lib
@@ -442,8 +444,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
442
444
  - !ruby/object:Gem::Version
443
445
  version: '0'
444
446
  requirements: []
445
- rubygems_version: 3.4.10
446
- signing_key:
447
+ rubygems_version: 3.3.26
448
+ signing_key:
447
449
  specification_version: 4
448
450
  summary: Foreman maintenance tool belt
449
451
  test_files: []
@@ -1,67 +0,0 @@
1
- class Checks::CheckForNewerPackages < ForemanMaintain::Check
2
- metadata do
3
- label :check_for_newer_packages
4
- description 'Check for newer packages and optionally ask for confirmation if not found.'
5
-
6
- param :packages,
7
- 'package names to validate',
8
- :required => true
9
- param :manual_confirmation_version,
10
- 'Version of satellite to ask the user if they are on the latest minor release of.',
11
- :required => false
12
- manual_detection
13
- end
14
-
15
- def run
16
- check_for_package_update
17
- if @manual_confirmation_version
18
- question = 'Confirm that you are running the latest minor release of Satellite '\
19
- "#{@manual_confirmation_version}"
20
- answer = ask_decision(question, actions_msg: 'y(yes), q(quit)')
21
- abort! if answer != :yes
22
- end
23
- end
24
-
25
- def check_for_package_update
26
- exit_status, output = ForemanMaintain.package_manager.check_update(packages: @packages,
27
- with_status: true)
28
- packages_with_updates = []
29
- if exit_status == 100
30
- packages_with_updates = compare_pkg_versions(output).select do |_, result|
31
- result == -1
32
- end.keys
33
- end
34
-
35
- unless packages_with_updates.empty?
36
- command = ForemanMaintain.pkg_and_cmd_name[1]
37
- fail! 'Required updates for some packages detected.'\
38
- "\nPlease update to the latest #{@manual_confirmation_version}.z release "\
39
- 'before proceeding, using:'\
40
- "\n# #{command} upgrade run --target-version #{@manual_confirmation_version}.z"
41
- end
42
- end
43
-
44
- def packages_and_versions(output)
45
- pkgs_versions = {}
46
- pkg_details = output.split("\n\n")[1].split
47
- @packages.each do |pkg|
48
- pkg_details.each_with_index do |ele, index|
49
- next unless ele.start_with?(pkg)
50
- pkgs_versions[pkg] = version(pkg_details[index + 1].split('-').first)
51
- break
52
- end
53
- end
54
- pkgs_versions
55
- end
56
-
57
- def compare_pkg_versions(output)
58
- compare_pkg_versions = {}
59
- packages_and_versions = packages_and_versions(output)
60
- pkg_versions610 = { 'python3-pulp-2to3-migration' => version('0.12'),
61
- 'tfm-rubygem-katello' => version('4.1') }
62
- packages_and_versions.each do |name, version|
63
- compare_pkg_versions[name] = version.<=>(pkg_versions610[name])
64
- end
65
- compare_pkg_versions
66
- end
67
- end