foreman_maintain 1.6.6 → 1.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49e4ffcc4a0a5899887cc3bc1dad11b10381deb25add42d732e8285787307959
4
- data.tar.gz: e9ae9b2138d6a6ab9cb6c5cd36332467aab83c2f4cd8f8d6b46150067d072053
3
+ metadata.gz: c513edc079ddea8f18904feeed2d3299c59949183703f7344946c8828abee6b6
4
+ data.tar.gz: 2fb58c156aaf22a0b1be982768a267926f8f080b063a2169ab6868fa1955b26d
5
5
  SHA512:
6
- metadata.gz: 4b242b0cb68111062213960792f2b712ba5770a5887d088f824a957fa193dc8d3b49425b3e94e0ac9752cf504ee9a7b2ff7d52417a5edb077d6890aaee6c8859
7
- data.tar.gz: 8a09714780cf70012aabeab9d919c80b3c62ca2859c5a208b5838bfbb83a658a38c753b9db0508d36d094053570be027428517760212acb30ca431310f172a5f
6
+ metadata.gz: bbd8eb809ab9f165b461dd2b29e8af8b5ffdee2d285462d9a9b626e93f922ac20066d166a751524c80edbadb6c465cbb6a5661529591da7188608ff0d48467b3
7
+ data.tar.gz: 7450630a6ab864eec72be71fd6b948f016d59f8f1e6dcbc11c8110d41bbde62504f16acc40b9bd3ff2e5b902cd316555fb03ebf72c2606b851824fbf8d50fb6f
@@ -6,7 +6,7 @@ class Features::ForemanInstall < ForemanMaintain::Feature
6
6
  label :foreman_install
7
7
 
8
8
  confine do
9
- !feature(:instance).downstream && !feature(:katello) && feature(:foreman_server)
9
+ !feature(:instance).downstream && feature(:foreman_server)
10
10
  end
11
11
  end
12
12
  end
@@ -6,7 +6,6 @@ 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 :dnf_options, 'Extra dnf options if any', :array => true, :default => []
10
9
  param :download_only, 'Download and cache packages only', :flag => true, :default => false
11
10
  param :clean_cache, 'If true will cause a DNF cache clean', :flag => true, :default => true
12
11
  end
@@ -16,7 +15,6 @@ module Procedures::Packages
16
15
  package_manager.clean_cache(:assumeyes => assumeyes_val) if @clean_cache
17
16
  opts = {
18
17
  :assumeyes => assumeyes_val,
19
- :options => @dnf_options,
20
18
  :download_only => @download_only,
21
19
  }
22
20
  packages_action(:update, @packages, opts)
@@ -3,7 +3,7 @@ module Procedures::Repositories
3
3
  metadata do
4
4
  description 'Setup repositories'
5
5
  confine do
6
- feature(:instance).downstream || feature(:upstream)
6
+ feature(:instance).downstream || feature(:instance).upstream_install
7
7
  end
8
8
  param :version,
9
9
  'Version for which repositories needs to be setup',
@@ -0,0 +1,141 @@
1
+ module Scenarios::ForemanUpgrade
2
+ class Abstract < ForemanMaintain::Scenario
3
+ def self.upgrade_metadata(&block)
4
+ metadata do
5
+ tags :upgrade_scenario
6
+ confine do
7
+ feature(:foreman_install)
8
+ end
9
+ instance_eval(&block)
10
+ end
11
+ end
12
+
13
+ def target_version
14
+ 'nightly'
15
+ end
16
+ end
17
+
18
+ class PreUpgradeCheck < Abstract
19
+ upgrade_metadata do
20
+ description 'Checks before upgrading'
21
+ tags :pre_upgrade_checks
22
+ run_strategy :fail_slow
23
+ end
24
+
25
+ # rubocop:disable Metrics/MethodLength
26
+ def compose
27
+ add_steps(
28
+ Checks::Foreman::FactsNames, # if Foreman database present
29
+ Checks::ForemanProxy::CheckTftpStorage, # if Satellite with foreman-proxy+tftp
30
+ Checks::ForemanProxy::VerifyDhcpConfigSyntax, # if foreman-proxy+dhcp-isc
31
+ Checks::ForemanTasks::NotPaused, # if foreman-tasks present
32
+ Checks::Puppet::VerifyNoEmptyCacertRequests, # if puppetserver
33
+ Checks::ServerPing,
34
+ Checks::ServicesUp,
35
+ Checks::SystemRegistration,
36
+ Checks::CheckHotfixInstalled,
37
+ Checks::CheckTmout,
38
+ Checks::CheckUpstreamRepository,
39
+ Checks::Disk::AvailableSpace,
40
+ Checks::Disk::AvailableSpaceCandlepin, # if candlepin
41
+ Checks::Foreman::ValidateExternalDbVersion, # if external database
42
+ Checks::Foreman::CheckCorruptedRoles,
43
+ Checks::Foreman::CheckDuplicatePermissions,
44
+ Checks::Foreman::TuningRequirements, # if katello present
45
+ Checks::ForemanOpenscap::InvalidReportAssociations, # if foreman-openscap
46
+ Checks::ForemanTasks::Invalid::CheckOld, # if foreman-tasks
47
+ Checks::ForemanTasks::Invalid::CheckPendingState, # if foreman-tasks
48
+ Checks::ForemanTasks::Invalid::CheckPlanningState, # if foreman-tasks
49
+ Checks::ForemanTasks::NotRunning, # if foreman-tasks
50
+ Checks::NonRhPackages,
51
+ Checks::PackageManager::Dnf::ValidateDnfConfig,
52
+ Checks::Repositories::CheckNonRhRepository,
53
+ Checks::Repositories::Validate
54
+ )
55
+ end
56
+ # rubocop:enable Metrics/MethodLength
57
+ end
58
+
59
+ class PreMigrations < Abstract
60
+ upgrade_metadata do
61
+ description 'Procedures before upgrading'
62
+ tags :pre_migrations
63
+ end
64
+
65
+ def compose
66
+ add_steps(
67
+ Procedures::MaintenanceMode::EnableMaintenanceMode,
68
+ Procedures::Crond::Stop,
69
+ Procedures::SyncPlans::Disable
70
+ )
71
+ end
72
+ end
73
+
74
+ class Migrations < Abstract
75
+ upgrade_metadata do
76
+ description 'Upgrade steps'
77
+ tags :migrations
78
+ run_strategy :fail_fast
79
+ end
80
+
81
+ def set_context_mapping
82
+ context.map(:assumeyes, Procedures::Installer::Run => :assumeyes)
83
+ end
84
+
85
+ def compose
86
+ add_step(Procedures::Repositories::Setup.new(:version => 'nightly'))
87
+ if el8?
88
+ modules_to_switch = ['postgresql:13']
89
+ add_step(Procedures::Packages::SwitchModules.new(:module_names => modules_to_switch))
90
+ end
91
+
92
+ add_step(Procedures::Packages::Update.new(
93
+ :assumeyes => true,
94
+ :download_only => true
95
+ ))
96
+ add_step(Procedures::Service::Stop.new)
97
+ add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
98
+
99
+ add_step_with_context(Procedures::Installer::Run)
100
+ end
101
+ end
102
+
103
+ class PostMigrations < Abstract
104
+ upgrade_metadata do
105
+ description 'Post upgrade procedures'
106
+ tags :post_migrations
107
+ end
108
+
109
+ def compose
110
+ add_steps(
111
+ Procedures::RefreshFeatures,
112
+ Procedures::Service::Start,
113
+ Procedures::Crond::Start,
114
+ Procedures::SyncPlans::Enable,
115
+ Procedures::MaintenanceMode::DisableMaintenanceMode
116
+ )
117
+ end
118
+ end
119
+
120
+ class PostUpgradeChecks < Abstract
121
+ upgrade_metadata do
122
+ description 'Checks after upgrading'
123
+ tags :post_upgrade_checks
124
+ run_strategy :fail_slow
125
+ end
126
+
127
+ def compose
128
+ add_steps(
129
+ Checks::Foreman::FactsNames, # if Foreman database present
130
+ Checks::ForemanProxy::CheckTftpStorage, # if Satellite with foreman-proxy+tftp
131
+ Checks::ForemanProxy::VerifyDhcpConfigSyntax, # if foreman-proxy+dhcp-isc
132
+ Checks::ForemanTasks::NotPaused, # if foreman-tasks present
133
+ Checks::Puppet::VerifyNoEmptyCacertRequests, # if puppetserver
134
+ Checks::ServerPing,
135
+ Checks::ServicesUp,
136
+ Checks::SystemRegistration,
137
+ Procedures::Packages::CheckForReboot
138
+ )
139
+ end
140
+ end
141
+ end
@@ -59,7 +59,7 @@ module Scenarios::Update
59
59
  add_steps(
60
60
  Procedures::Packages::Update.new(
61
61
  :assumeyes => true,
62
- :dnf_options => ['--downloadonly']
62
+ :download_only => true
63
63
  ),
64
64
  Procedures::MaintenanceMode::EnableMaintenanceMode,
65
65
  Procedures::Crond::Stop,
@@ -26,8 +26,9 @@ module ForemanMaintain
26
26
  def execute
27
27
  ForemanMaintain.validate_downstream_packages
28
28
  ForemanMaintain.perform_self_upgrade unless disable_self_update?
29
- update_runner.run_phase(:pre_update_checks)
30
- exit update_runner.exit_code
29
+ runner = update_runner
30
+ runner.run_phase(:pre_update_checks)
31
+ exit runner.exit_code
31
32
  end
32
33
  end
33
34
 
@@ -38,9 +39,10 @@ module ForemanMaintain
38
39
  def execute
39
40
  ForemanMaintain.validate_downstream_packages
40
41
  ForemanMaintain.perform_self_upgrade unless disable_self_update?
41
- update_runner.run
42
- update_runner.save
43
- exit update_runner.exit_code
42
+ runner = update_runner
43
+ runner.run
44
+ runner.save
45
+ exit runner.exit_code
44
46
  end
45
47
  end
46
48
  end
@@ -108,7 +108,6 @@ module ForemanMaintain
108
108
  package_manager.update(
109
109
  packages,
110
110
  :assumeyes => options[:assumeyes],
111
- :options => options[:options],
112
111
  :download_only => options[:download_only]
113
112
  )
114
113
  when :remove
@@ -19,12 +19,10 @@ module ForemanMaintain::PackageManager
19
19
  apt_action('remove', packages, :assumeyes => assumeyes)
20
20
  end
21
21
 
22
- # rubocop:disable Lint/UnusedMethodArgument
23
- def update(packages = [], assumeyes: false, options: [], download_only: false)
22
+ def update(packages = [], assumeyes: false, download_only: false)
24
23
  action = packages.any? ? '--only-upgrade install' : 'upgrade'
25
24
  apt_action(action, packages, :assumeyes => assumeyes, :download_only => download_only)
26
25
  end
27
- # rubocop:enable Lint/UnusedMethodArgument
28
26
 
29
27
  def clean_cache(assumeyes: false)
30
28
  apt_action('clean', [], :assumeyes => assumeyes)
@@ -59,12 +59,11 @@ module ForemanMaintain::PackageManager
59
59
  dnf_action('remove', packages, assumeyes: assumeyes)
60
60
  end
61
61
 
62
- def update(packages = [], assumeyes: false, options: [], download_only: false)
62
+ def update(packages = [], assumeyes: false, download_only: false)
63
63
  dnf_action(
64
64
  'update',
65
65
  packages,
66
66
  assumeyes: assumeyes,
67
- dnf_options: options,
68
67
  download_only: download_only
69
68
  )
70
69
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.6.6'.freeze
2
+ VERSION = '1.6.7'.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.6.6
4
+ version: 1.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Nečas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-01 00:00:00.000000000 Z
11
+ date: 2024-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -310,6 +310,7 @@ files:
310
310
  - definitions/procedures/sync_plans/disable.rb
311
311
  - definitions/procedures/sync_plans/enable.rb
312
312
  - definitions/scenarios/backup.rb
313
+ - definitions/scenarios/foreman_upgrade.rb
313
314
  - definitions/scenarios/maintenance_mode.rb
314
315
  - definitions/scenarios/packages.rb
315
316
  - definitions/scenarios/puppet.rb
@@ -319,8 +320,6 @@ files:
319
320
  - definitions/scenarios/update.rb
320
321
  - definitions/scenarios/upgrade_to_capsule_6_16.rb
321
322
  - definitions/scenarios/upgrade_to_capsule_6_16_z.rb
322
- - definitions/scenarios/upgrade_to_foreman_nightly.rb
323
- - definitions/scenarios/upgrade_to_katello_nightly.rb
324
323
  - definitions/scenarios/upgrade_to_satellite_6_16.rb
325
324
  - definitions/scenarios/upgrade_to_satellite_6_16_z.rb
326
325
  - extras/foreman-maintain.sh
@@ -1,91 +0,0 @@
1
- module Scenarios::Foreman_Nightly
2
- class Abstract < ForemanMaintain::Scenario
3
- def self.upgrade_metadata(&block)
4
- metadata do
5
- tags :upgrade_scenario
6
- confine do
7
- feature(:foreman_install) || ForemanMaintain.upgrade_in_progress == 'nightly'
8
- end
9
- instance_eval(&block)
10
- end
11
- end
12
-
13
- def target_version
14
- 'nightly'
15
- end
16
- end
17
-
18
- class PreUpgradeCheck < Abstract
19
- upgrade_metadata do
20
- description 'Checks before upgrading to Foreman nightly'
21
- tags :pre_upgrade_checks
22
- run_strategy :fail_slow
23
- end
24
-
25
- def compose
26
- add_steps(find_checks(:default))
27
- add_steps(find_checks(:pre_upgrade))
28
- end
29
- end
30
-
31
- class PreMigrations < Abstract
32
- upgrade_metadata do
33
- description 'Procedures before upgrading to Foreman nightly'
34
- tags :pre_migrations
35
- end
36
-
37
- def compose
38
- add_steps(find_procedures(:pre_migrations))
39
- end
40
- end
41
-
42
- class Migrations < Abstract
43
- upgrade_metadata do
44
- description 'Upgrade steps for Foreman nightly'
45
- tags :migrations
46
- run_strategy :fail_fast
47
- end
48
-
49
- def set_context_mapping
50
- context.map(:assumeyes, Procedures::Installer::Run => :assumeyes)
51
- end
52
-
53
- def compose
54
- add_step(Procedures::Repositories::Setup.new(:version => 'nightly'))
55
- if el8?
56
- modules_to_switch = ['postgresql:13']
57
- add_step(Procedures::Packages::SwitchModules.new(:module_names => modules_to_switch))
58
- modules_to_enable = ["foreman:#{el_short_name}"]
59
- add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
60
- end
61
- add_step(Procedures::Packages::Update.new(:assumeyes => true))
62
- add_step_with_context(Procedures::Installer::Run)
63
- end
64
- end
65
-
66
- class PostMigrations < Abstract
67
- upgrade_metadata do
68
- description 'Post upgrade procedures for Foreman nightly'
69
- tags :post_migrations
70
- end
71
-
72
- def compose
73
- add_step(Procedures::RefreshFeatures)
74
- add_step(Procedures::Service::Start.new)
75
- add_steps(find_procedures(:post_migrations))
76
- end
77
- end
78
-
79
- class PostUpgradeChecks < Abstract
80
- upgrade_metadata do
81
- description 'Checks after upgrading to Foreman nightly'
82
- tags :post_upgrade_checks
83
- run_strategy :fail_slow
84
- end
85
-
86
- def compose
87
- add_steps(find_checks(:default))
88
- add_steps(find_checks(:post_upgrade))
89
- end
90
- end
91
- end
@@ -1,96 +0,0 @@
1
- module Scenarios::Katello_Nightly
2
- class Abstract < ForemanMaintain::Scenario
3
- def self.upgrade_metadata(&block)
4
- metadata do
5
- tags :upgrade_scenario
6
- confine do
7
- feature(:katello_install) || ForemanMaintain.upgrade_in_progress == 'nightly'
8
- end
9
- instance_eval(&block)
10
- end
11
- end
12
-
13
- def target_version
14
- 'nightly'
15
- end
16
- end
17
-
18
- class PreUpgradeCheck < Abstract
19
- upgrade_metadata do
20
- description 'Checks before upgrading to Katello nightly'
21
- tags :pre_upgrade_checks
22
- run_strategy :fail_slow
23
- end
24
-
25
- def compose
26
- add_steps(find_checks(:default))
27
- add_steps(find_checks(:pre_upgrade))
28
- end
29
- end
30
-
31
- class PreMigrations < Abstract
32
- upgrade_metadata do
33
- description 'Procedures before upgrading to Katello nightly'
34
- tags :pre_migrations
35
- end
36
-
37
- def compose
38
- add_steps(find_procedures(:pre_migrations))
39
- end
40
- end
41
-
42
- class Migrations < Abstract
43
- upgrade_metadata do
44
- description 'Upgrade steps for Katello nightly'
45
- tags :migrations
46
- run_strategy :fail_fast
47
- end
48
-
49
- def set_context_mapping
50
- context.map(:assumeyes, Procedures::Installer::Run => :assumeyes)
51
- end
52
-
53
- def compose
54
- add_step(Procedures::Repositories::Setup.new(:version => 'nightly'))
55
- if el8?
56
- modules_to_switch = ['postgresql:13']
57
- add_step(Procedures::Packages::SwitchModules.new(:module_names => modules_to_switch))
58
- modules_to_enable = ["katello:#{el_short_name}", "pulpcore:#{el_short_name}"]
59
- add_step(Procedures::Packages::EnableModules.new(:module_names => modules_to_enable))
60
- end
61
- add_step(Procedures::Packages::Update.new(
62
- :assumeyes => true,
63
- :download_only => true
64
- ))
65
- add_step(Procedures::Service::Stop.new)
66
- add_step(Procedures::Packages::Update.new(:assumeyes => true, :clean_cache => false))
67
- add_step_with_context(Procedures::Installer::Run)
68
- end
69
- end
70
-
71
- class PostMigrations < Abstract
72
- upgrade_metadata do
73
- description 'Post upgrade procedures for Katello nightly'
74
- tags :post_migrations
75
- end
76
-
77
- def compose
78
- add_step(Procedures::RefreshFeatures)
79
- add_step(Procedures::Service::Start.new)
80
- add_steps(find_procedures(:post_migrations))
81
- end
82
- end
83
-
84
- class PostUpgradeChecks < Abstract
85
- upgrade_metadata do
86
- description 'Checks after upgrading to Katello nightly'
87
- tags :post_upgrade_checks
88
- run_strategy :fail_slow
89
- end
90
-
91
- def compose
92
- add_steps(find_checks(:default))
93
- add_steps(find_checks(:post_upgrade))
94
- end
95
- end
96
- end