foreman_maintain 1.6.5 → 1.6.7

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: 9832b114fa0e778b687140d47774ffa583742e69c0883f7e0738fad23e6d0f87
4
- data.tar.gz: dfd33002a93b7171aab581342c169d0eef6cee318302bad7d24108581e05b514
3
+ metadata.gz: c513edc079ddea8f18904feeed2d3299c59949183703f7344946c8828abee6b6
4
+ data.tar.gz: 2fb58c156aaf22a0b1be982768a267926f8f080b063a2169ab6868fa1955b26d
5
5
  SHA512:
6
- metadata.gz: 30c727eed2a0f6fb4402caedfcbca2b5e8466b322f94f938523e16726b9439d3b00737950d88c41993fdd61f8cedea7c67752d1917e91ff6a6dde57dfbca1544
7
- data.tar.gz: fd20b2f2ea602071e1371266b62e7640b945a942208469019f0ee173ab90afd51de78e91c9790c525d1d6e689f5d47779e57ce22c032a1a1d3c53f61eb566135
6
+ metadata.gz: bbd8eb809ab9f165b461dd2b29e8af8b5ffdee2d285462d9a9b626e93f922ac20066d166a751524c80edbadb6c465cbb6a5661529591da7188608ff0d48467b3
7
+ data.tar.gz: 7450630a6ab864eec72be71fd6b948f016d59f8f1e6dcbc11c8110d41bbde62504f16acc40b9bd3ff2e5b902cd316555fb03ebf72c2606b851824fbf8d50fb6f
@@ -21,7 +21,7 @@ module Checks::Repositories
21
21
  if feature(:instance).downstream.subscribed_using_activation_key?
22
22
  skip 'Your system is subscribed using custom activation key'
23
23
  else
24
- @version ||= package_version(feature(:instance).downstream.package_name)
24
+ @version ||= package_version(feature(:instance).downstream.package_name).version
25
25
 
26
26
  with_spinner("Validating availability of repositories for #{@version}") do |spinner|
27
27
  find_absent_repos(spinner)
@@ -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,15 +19,13 @@ 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
- apt_action('clean', :assumeyes => assumeyes)
28
+ apt_action('clean', [], :assumeyes => assumeyes)
31
29
  end
32
30
 
33
31
  def find_installed_package(name, queryfm = '')
@@ -60,8 +60,6 @@ module ForemanMaintain::PackageManager
60
60
  false
61
61
  end
62
62
 
63
- private
64
-
65
63
  def sys
66
64
  ForemanMaintain::Utils::SystemHelpers
67
65
  end
@@ -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
@@ -138,7 +137,7 @@ module ForemanMaintain::PackageManager
138
137
  packages = [packages].flatten(1)
139
138
 
140
139
  dnf_options << '-y' if assumeyes
141
- dnf_topions << '--downloadonly' if download_only
140
+ dnf_options << '--downloadonly' if download_only
142
141
  dnf_options << '--disableplugin=foreman-protector'
143
142
 
144
143
  command = ['dnf', dnf_options.join(' '), action]
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.6.5'.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.5
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-04-29 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