foreman_maintain 0.6.3 → 0.6.4
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 +4 -4
- data/definitions/checks/check_hotfix_installed.rb +2 -1
- data/definitions/checks/disk/performance.rb +9 -2
- data/definitions/checks/repositories/check_non_rh_repository.rb +23 -0
- data/definitions/checks/repositories/check_upstream_repository.rb +2 -1
- data/definitions/checks/repositories/validate.rb +2 -1
- data/definitions/features/apache.rb +19 -0
- data/definitions/features/dynflow_sidekiq.rb +1 -1
- data/definitions/features/foreman_server.rb +9 -3
- data/definitions/features/puppet_server.rb +6 -2
- data/definitions/features/service.rb +10 -3
- data/definitions/procedures/hammer_setup.rb +1 -1
- data/definitions/procedures/installer/run.rb +3 -1
- data/definitions/procedures/installer/upgrade.rb +6 -1
- data/definitions/procedures/packages/update.rb +1 -1
- data/definitions/procedures/service/stop.rb +1 -1
- data/definitions/scenarios/packages.rb +36 -14
- data/definitions/scenarios/upgrade_to_capsule_6_7.rb +5 -1
- data/definitions/scenarios/upgrade_to_capsule_6_7_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_capsule_6_8.rb +5 -1
- data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_2.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_3.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_4.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_5.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_6.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_7.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_8.rb +5 -1
- data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +5 -1
- data/lib/foreman_maintain.rb +27 -0
- data/lib/foreman_maintain/cli/upgrade_command.rb +10 -0
- data/lib/foreman_maintain/concerns/downstream.rb +1 -2
- data/lib/foreman_maintain/package_manager/dnf.rb +11 -5
- data/lib/foreman_maintain/package_manager/yum.rb +15 -5
- data/lib/foreman_maintain/reporter/cli_reporter.rb +3 -3
- data/lib/foreman_maintain/utils/facter.rb +1 -1
- data/lib/foreman_maintain/utils/service/abstract.rb +6 -0
- data/lib/foreman_maintain/version.rb +1 -1
- metadata +4 -4
- data/definitions/checks/check_epel_repository.rb +0 -21
- data/definitions/procedures/restore/regenerate_missing_queues.rb +0 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e51a96d2df37cf98881bc81a1b67f33dca283ea34b226f2f434273984e6baa59
|
4
|
+
data.tar.gz: ad6c47b27ba7e5c2869354c0a60885e8da2158cc3b6feb04df614ccc78c395d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddd22571061620757eaa7d814c34c7c4d06801361ebba1296b5089a345ed61ac91c41fbaa97f643bb8535bf5644d5e96065dccbd66681d6b3516963462f1d940
|
7
|
+
data.tar.gz: 9f0023b28042b0f5145a7c2b60b91a8194216eeaa5936987cb91504c49a502a9dfd03c21d3d527cc7487a14a7abe2d8513dcc66a7f47454fa9f3bdc61debdb85
|
@@ -4,7 +4,8 @@ class Checks::CheckHotfixInstalled < ForemanMaintain::Check
|
|
4
4
|
description 'Check to verify if any hotfix installed on system'
|
5
5
|
tags :pre_upgrade
|
6
6
|
preparation_steps do
|
7
|
-
|
7
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
8
|
+
Procedures::Packages::Install.new(:packages => %w[yum-utils])]
|
8
9
|
end
|
9
10
|
|
10
11
|
confine do
|
@@ -3,8 +3,15 @@ module Checks
|
|
3
3
|
class Performance < ForemanMaintain::Check
|
4
4
|
metadata do
|
5
5
|
label :disk_performance
|
6
|
-
|
7
|
-
|
6
|
+
preparation_steps do
|
7
|
+
if feature(:instance).downstream
|
8
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
9
|
+
Procedures::Packages::Install.new(:packages => %w[fio])]
|
10
|
+
else
|
11
|
+
[Procedures::Packages::Install.new(:packages => %w[fio])]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
8
15
|
confine do
|
9
16
|
feature(:instance).pulp
|
10
17
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Checks::Repositories
|
2
|
+
class CheckNonRhRepository < ForemanMaintain::Check
|
3
|
+
metadata do
|
4
|
+
label :check_non_redhat_repository
|
5
|
+
description "Check whether system don't have any non Red Hat repositories(Eg: EPEL) enabled"
|
6
|
+
tags :pre_upgrade
|
7
|
+
confine do
|
8
|
+
feature(:instance).downstream
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def run
|
13
|
+
with_spinner('Checking repositories enabled on the system') do
|
14
|
+
assert(!epel_enabled?, 'System is subscribed to non Red Hat repositories(Eg: EPEL)')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def epel_enabled?
|
19
|
+
system_repos = execute("yum repolist enabled -d 6 -e 0| grep -E 'Repo-baseurl|Repo-id'")
|
20
|
+
system_repos.to_s.match(/\bepel\b/i)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -4,7 +4,8 @@ class Checks::CheckUpstreamRepository < ForemanMaintain::Check
|
|
4
4
|
description 'Check if any upstream repositories are enabled on system'
|
5
5
|
tags :pre_upgrade
|
6
6
|
preparation_steps do
|
7
|
-
|
7
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
8
|
+
Procedures::Packages::Install.new(:packages => %w[yum-utils])]
|
8
9
|
end
|
9
10
|
confine do
|
10
11
|
feature(:instance).downstream
|
@@ -3,7 +3,8 @@ module Checks::Repositories
|
|
3
3
|
metadata do
|
4
4
|
description 'Validate availability of repositories'
|
5
5
|
preparation_steps do
|
6
|
-
|
6
|
+
[Checks::Repositories::CheckNonRhRepository.new,
|
7
|
+
Procedures::Packages::Install.new(:packages => [ForemanMaintain::Utils::Facter.package])]
|
7
8
|
end
|
8
9
|
|
9
10
|
confine do
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Features::Apache < ForemanMaintain::Feature
|
2
|
+
metadata do
|
3
|
+
label :apache
|
4
|
+
|
5
|
+
confine do
|
6
|
+
find_package('httpd')
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def services
|
11
|
+
[
|
12
|
+
system_service('httpd', 30)
|
13
|
+
]
|
14
|
+
end
|
15
|
+
|
16
|
+
def config_files
|
17
|
+
['/etc/httpd']
|
18
|
+
end
|
19
|
+
end
|
@@ -13,7 +13,7 @@ class Features::DynflowSidekiq < ForemanMaintain::Feature
|
|
13
13
|
|
14
14
|
def config_files
|
15
15
|
# Workaround until foreman-installer can deploy scaled workers
|
16
|
-
service_symlinks =
|
16
|
+
service_symlinks = configured_instances.map do |service|
|
17
17
|
"/etc/systemd/system/multi-user.target.wants/#{service}.service"
|
18
18
|
end
|
19
19
|
[
|
@@ -9,9 +9,11 @@ module ForemanMaintain
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def services
|
12
|
-
|
13
|
-
system_service('
|
14
|
-
|
12
|
+
if execute?('systemctl is-enabled foreman')
|
13
|
+
[system_service('foreman', 30, :socket => 'foreman')]
|
14
|
+
else
|
15
|
+
[system_service('httpd', 30)]
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
19
|
def plugins
|
@@ -41,6 +43,10 @@ module ForemanMaintain
|
|
41
43
|
'/var/lib/foreman/public'
|
42
44
|
]
|
43
45
|
end
|
46
|
+
|
47
|
+
def services_running?
|
48
|
+
services.all?(&:running?)
|
49
|
+
end
|
44
50
|
end
|
45
51
|
end
|
46
52
|
end
|
@@ -29,7 +29,7 @@ class Features::PuppetServer < ForemanMaintain::Feature
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def puppet_version
|
32
|
-
version(execute!(
|
32
|
+
version(execute!("#{puppet_path} --version"))
|
33
33
|
end
|
34
34
|
|
35
35
|
def find_empty_cacert_request_files
|
@@ -56,6 +56,10 @@ class Features::PuppetServer < ForemanMaintain::Feature
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def puppet_ssldir_path
|
59
|
-
execute!(
|
59
|
+
execute!("#{puppet_path} config print ssldir")
|
60
|
+
end
|
61
|
+
|
62
|
+
def puppet_path
|
63
|
+
'/opt/puppetlabs/bin/puppet'
|
60
64
|
end
|
61
65
|
end
|
@@ -27,7 +27,7 @@ class Features::Service < ForemanMaintain::Feature
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def filtered_services(options)
|
30
|
-
service_list = existing_services
|
30
|
+
service_list = include_unregistered_services(existing_services, options[:include])
|
31
31
|
service_list = filter_services(service_list, options)
|
32
32
|
raise 'No services found matching your parameters' unless service_list.any?
|
33
33
|
|
@@ -99,9 +99,14 @@ class Features::Service < ForemanMaintain::Feature
|
|
99
99
|
%w[start stop restart status enable disable].include?(action)
|
100
100
|
end
|
101
101
|
|
102
|
-
def
|
103
|
-
service_list
|
102
|
+
def extend_service_list_with_sockets(service_list, options)
|
103
|
+
return service_list unless options[:include_sockets]
|
104
|
+
|
105
|
+
socket_list = service_list.map(&:socket).compact.select(&:exist?)
|
106
|
+
service_list + socket_list
|
107
|
+
end
|
104
108
|
|
109
|
+
def filter_services(service_list, options)
|
105
110
|
if options[:only] && options[:only].any?
|
106
111
|
service_list = service_list.select do |service|
|
107
112
|
options[:only].any? { |opt| service.matches?(opt) }
|
@@ -112,6 +117,8 @@ class Features::Service < ForemanMaintain::Feature
|
|
112
117
|
if options[:exclude] && options[:exclude].any?
|
113
118
|
service_list = service_list.reject { |service| options[:exclude].include?(service.name) }
|
114
119
|
end
|
120
|
+
|
121
|
+
service_list = extend_service_list_with_sockets(service_list, options)
|
115
122
|
service_list.sort
|
116
123
|
end
|
117
124
|
|
@@ -5,7 +5,7 @@ class Procedures::HammerSetup < ForemanMaintain::Procedure
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def run
|
8
|
-
if feature(:foreman_server) &&
|
8
|
+
if feature(:foreman_server) && feature(:foreman_server).services_running?
|
9
9
|
puts 'Configuring Hammer CLI...'
|
10
10
|
result = feature(:hammer).setup_admin_access
|
11
11
|
logger.info 'Hammer was configured successfully.' if result
|
@@ -2,10 +2,12 @@ module Procedures::Installer
|
|
2
2
|
class Run < ForemanMaintain::Procedure
|
3
3
|
metadata do
|
4
4
|
param :arguments, 'Arguments passed to installer'
|
5
|
+
param :assumeyes, 'Do not ask for confirmation'
|
5
6
|
end
|
6
7
|
|
7
8
|
def run
|
8
|
-
|
9
|
+
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
10
|
+
feature(:installer).run(@arguments, :interactive => !assumeyes_val)
|
9
11
|
end
|
10
12
|
|
11
13
|
def description
|
@@ -1,7 +1,12 @@
|
|
1
1
|
module Procedures::Installer
|
2
2
|
class Upgrade < ForemanMaintain::Procedure
|
3
|
+
metadata do
|
4
|
+
param :assumeyes, 'Do not ask for confirmation'
|
5
|
+
end
|
6
|
+
|
3
7
|
def run
|
4
|
-
|
8
|
+
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
9
|
+
feature(:installer).run(@arguments, :interactive => !assumeyes_val)
|
5
10
|
end
|
6
11
|
end
|
7
12
|
end
|
@@ -10,7 +10,7 @@ module Procedures::Packages
|
|
10
10
|
|
11
11
|
def run
|
12
12
|
assumeyes_val = @assumeyes.nil? ? assumeyes? : @assumeyes
|
13
|
-
package_manager.clean_cache
|
13
|
+
package_manager.clean_cache(:assumeyes => assumeyes_val)
|
14
14
|
packages_action(:update, @packages, :assumeyes => assumeyes_val)
|
15
15
|
rescue ForemanMaintain::Error::ExecutionError => e
|
16
16
|
if @warn_on_errors
|
@@ -1,5 +1,16 @@
|
|
1
1
|
module ForemanMaintain::Scenarios
|
2
2
|
module Packages
|
3
|
+
def self.skip_installer_run?(packages_list)
|
4
|
+
packages_list = packages_list.split(',').map(&:strip) if packages_list.is_a?(String)
|
5
|
+
|
6
|
+
return false unless packages_list.any? { |p| p.include?('foreman_maintain') }
|
7
|
+
return true if packages_list.length == 1
|
8
|
+
|
9
|
+
fm_pkg = ForemanMaintain.main_package_name
|
10
|
+
puts "ERROR: install or update '#{fm_pkg}' package individually."
|
11
|
+
exit 1
|
12
|
+
end
|
13
|
+
|
3
14
|
class Status < ForemanMaintain::Scenario
|
4
15
|
metadata do
|
5
16
|
label :packages_status
|
@@ -45,12 +56,17 @@ module ForemanMaintain::Scenarios
|
|
45
56
|
end
|
46
57
|
|
47
58
|
def compose
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
59
|
+
if Packages.skip_installer_run?(context.get(:packages))
|
60
|
+
add_step_with_context(Procedures::Packages::Install,
|
61
|
+
:force => true, :warn_on_errors => true)
|
62
|
+
else
|
63
|
+
add_step_with_context(Procedures::Packages::InstallerConfirmation)
|
64
|
+
add_step_with_context(Procedures::Packages::UnlockVersions)
|
65
|
+
add_step_with_context(Procedures::Packages::Install,
|
66
|
+
:force => true, :warn_on_errors => true)
|
67
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
68
|
+
add_step(Procedures::Packages::LockingStatus)
|
69
|
+
end
|
54
70
|
end
|
55
71
|
|
56
72
|
def set_context_mapping
|
@@ -70,14 +86,20 @@ module ForemanMaintain::Scenarios
|
|
70
86
|
end
|
71
87
|
|
72
88
|
def compose
|
73
|
-
|
74
|
-
Procedures::Packages::
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
89
|
+
if Packages.skip_installer_run?(context.get(:packages))
|
90
|
+
add_step_with_context(Procedures::Packages::Update,
|
91
|
+
:force => true, :warn_on_errors => true)
|
92
|
+
else
|
93
|
+
add_steps_with_context(
|
94
|
+
Procedures::Packages::UpdateAllConfirmation,
|
95
|
+
Procedures::Packages::InstallerConfirmation,
|
96
|
+
Procedures::Packages::UnlockVersions
|
97
|
+
)
|
98
|
+
add_step_with_context(Procedures::Packages::Update,
|
99
|
+
:force => true, :warn_on_errors => true)
|
100
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
101
|
+
add_step(Procedures::Packages::LockingStatus)
|
102
|
+
end
|
81
103
|
end
|
82
104
|
|
83
105
|
def set_context_mapping
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_7
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_7_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_8
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Capsule_6_8_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_2
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.2'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_2_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.2'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -50,11 +50,15 @@ module Scenarios::Satellite_6_3
|
|
50
50
|
tags :migrations
|
51
51
|
end
|
52
52
|
|
53
|
+
def set_context_mapping
|
54
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
55
|
+
end
|
56
|
+
|
53
57
|
def compose
|
54
58
|
add_step(Procedures::Repositories::Setup.new(:version => '6.3'))
|
55
59
|
add_step(Procedures::Packages::UnlockVersions.new)
|
56
60
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
57
|
-
|
61
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_3_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.3'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -50,11 +50,15 @@ module Scenarios::Satellite_6_4
|
|
50
50
|
tags :migrations
|
51
51
|
end
|
52
52
|
|
53
|
+
def set_context_mapping
|
54
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
55
|
+
end
|
56
|
+
|
53
57
|
def compose
|
54
58
|
add_step(Procedures::Repositories::Setup.new(:version => '6.4'))
|
55
59
|
add_step(Procedures::Packages::UnlockVersions.new)
|
56
60
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
57
|
-
|
61
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_4_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.4'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_5
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.5'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_5_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.5'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_6
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.6'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_6_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.6'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_7
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_7_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_8
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
@@ -49,11 +49,15 @@ module Scenarios::Satellite_6_8_z
|
|
49
49
|
tags :migrations
|
50
50
|
end
|
51
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
52
56
|
def compose
|
53
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
54
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
55
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
56
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
data/lib/foreman_maintain.rb
CHANGED
@@ -143,5 +143,32 @@ module ForemanMaintain
|
|
143
143
|
def upgrade_in_progress
|
144
144
|
storage[:upgrade_target_version]
|
145
145
|
end
|
146
|
+
|
147
|
+
def pkg_and_cmd_name
|
148
|
+
instance_feature = ForemanMaintain.available_features(:label => :instance).first
|
149
|
+
if instance_feature.downstream
|
150
|
+
return %w[satellite-maintain satellite-maintain]
|
151
|
+
end
|
152
|
+
|
153
|
+
[main_package_name, 'foreman-maintain']
|
154
|
+
end
|
155
|
+
|
156
|
+
def perform_self_upgrade
|
157
|
+
package_name, command = pkg_and_cmd_name
|
158
|
+
|
159
|
+
puts "Checking for new version of #{package_name}..."
|
160
|
+
if ForemanMaintain.package_manager.update_available?(main_package_name)
|
161
|
+
puts "\nUpdating #{package_name} package."
|
162
|
+
ForemanMaintain.package_manager.update(main_package_name, :assumeyes => true)
|
163
|
+
puts "\nThe #{package_name} package successfully updated."\
|
164
|
+
"\nRe-run #{command} with required options!"
|
165
|
+
exit 0
|
166
|
+
end
|
167
|
+
puts "Nothing to update, can't find new version of #{package_name}."
|
168
|
+
end
|
169
|
+
|
170
|
+
def main_package_name
|
171
|
+
'rubygem-foreman_maintain'
|
172
|
+
end
|
146
173
|
end
|
147
174
|
end
|
@@ -6,6 +6,11 @@ module ForemanMaintain
|
|
6
6
|
:required => false
|
7
7
|
end
|
8
8
|
|
9
|
+
def self.disable_self_upgrade_option
|
10
|
+
option '--disable-self-upgrade', :flag, 'Disable automatic self upgrade',
|
11
|
+
:default => false
|
12
|
+
end
|
13
|
+
|
9
14
|
def current_target_version
|
10
15
|
current_target_version = ForemanMaintain::UpgradeRunner.current_target_version
|
11
16
|
if current_target_version && target_version && target_version != current_target_version
|
@@ -56,8 +61,10 @@ module ForemanMaintain
|
|
56
61
|
subcommand 'check', 'Run pre-upgrade checks before upgrading to specified version' do
|
57
62
|
target_version_option
|
58
63
|
interactive_option
|
64
|
+
disable_self_upgrade_option
|
59
65
|
|
60
66
|
def execute
|
67
|
+
ForemanMaintain.perform_self_upgrade unless disable_self_upgrade?
|
61
68
|
upgrade_runner.run_phase(:pre_upgrade_checks)
|
62
69
|
exit upgrade_runner.exit_code
|
63
70
|
end
|
@@ -66,6 +73,8 @@ module ForemanMaintain
|
|
66
73
|
subcommand 'run', 'Run full upgrade to a specified version' do
|
67
74
|
target_version_option
|
68
75
|
interactive_option
|
76
|
+
disable_self_upgrade_option
|
77
|
+
|
69
78
|
option '--phase', 'phase', 'run only a specific phase', :required => false do |phase|
|
70
79
|
unless UpgradeRunner::PHASES.include?(phase.to_sym)
|
71
80
|
raise Error::UsageError, "Unknown phase #{phase}"
|
@@ -74,6 +83,7 @@ module ForemanMaintain
|
|
74
83
|
end
|
75
84
|
|
76
85
|
def execute
|
86
|
+
ForemanMaintain.perform_self_upgrade unless disable_self_upgrade?
|
77
87
|
if phase
|
78
88
|
upgrade_runner.run_phase(phase.to_sym)
|
79
89
|
else
|
@@ -87,8 +87,7 @@ module ForemanMaintain
|
|
87
87
|
else
|
88
88
|
"rhel-#{rh_version_major}-server-#{package_name}-#{full_version}-rpms"
|
89
89
|
end
|
90
|
-
|
91
|
-
if current_minor_version == '6.3' && server_version.to_s != '6.4' && (
|
90
|
+
if current_minor_version == '6.3' && full_version.to_s != '6.4' && (
|
92
91
|
feature(:puppet_server) && feature(:puppet_server).puppet_version.major == 4)
|
93
92
|
# TODO: confirm repo for capsule. It might be same repo
|
94
93
|
repos << "rhel-#{rh_version_major}-server-satellite-tools-6.3-puppet4-rpms"
|
@@ -1,17 +1,23 @@
|
|
1
1
|
module ForemanMaintain::PackageManager
|
2
2
|
class Dnf < Yum
|
3
|
-
def clean_cache
|
4
|
-
dnf_action('clean', 'all')
|
3
|
+
def clean_cache(assumeyes: false)
|
4
|
+
dnf_action('clean', 'all', :assumeyes => assumeyes)
|
5
5
|
super
|
6
6
|
end
|
7
7
|
|
8
8
|
private
|
9
9
|
|
10
|
-
def dnf_action(action, packages, assumeyes: false)
|
10
|
+
def dnf_action(action, packages, with_status: false, assumeyes: false)
|
11
11
|
yum_options = []
|
12
12
|
yum_options << '-y' if assumeyes
|
13
|
-
|
14
|
-
|
13
|
+
if with_status
|
14
|
+
sys.execute_with_status("dnf #{yum_options.join(' ')} #{action} #{packages.join(' ')}",
|
15
|
+
:interactive => !assumeyes)
|
16
|
+
else
|
17
|
+
sys.execute!("dnf #{yum_options.join(' ')} #{action} #{packages.join(' ')}",
|
18
|
+
:interactive => !assumeyes)
|
19
|
+
|
20
|
+
end
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
@@ -57,8 +57,13 @@ module ForemanMaintain::PackageManager
|
|
57
57
|
yum_action('update', packages, :assumeyes => assumeyes)
|
58
58
|
end
|
59
59
|
|
60
|
-
def clean_cache
|
61
|
-
yum_action('clean', 'all')
|
60
|
+
def clean_cache(assumeyes: false)
|
61
|
+
yum_action('clean', 'all', :assumeyes => assumeyes)
|
62
|
+
end
|
63
|
+
|
64
|
+
def update_available?(package)
|
65
|
+
cmd_output = yum_action('check-update -q', package, :with_status => true, :assumeyes => false)
|
66
|
+
cmd_output[0] == 100
|
62
67
|
end
|
63
68
|
|
64
69
|
def files_not_owned_by_package(directory)
|
@@ -96,14 +101,19 @@ module ForemanMaintain::PackageManager
|
|
96
101
|
File.open(protector_config_file, 'w') { |file| file.puts config }
|
97
102
|
end
|
98
103
|
|
99
|
-
def yum_action(action, packages, assumeyes: false)
|
104
|
+
def yum_action(action, packages, with_status: false, assumeyes: false)
|
100
105
|
yum_options = []
|
101
106
|
packages = [packages].flatten(1)
|
102
107
|
yum_options << '-y' if assumeyes
|
103
108
|
yum_options_s = yum_options.empty? ? '' : ' ' + yum_options.join(' ')
|
104
109
|
packages_s = packages.empty? ? '' : ' ' + packages.join(' ')
|
105
|
-
|
106
|
-
|
110
|
+
if with_status
|
111
|
+
sys.execute_with_status("yum#{yum_options_s} #{action}#{packages_s}",
|
112
|
+
:interactive => !assumeyes)
|
113
|
+
else
|
114
|
+
sys.execute!("yum#{yum_options_s} #{action}#{packages_s}",
|
115
|
+
:interactive => !assumeyes)
|
116
|
+
end
|
107
117
|
end
|
108
118
|
|
109
119
|
def install_extras(src, dest, override: false)
|
@@ -16,7 +16,6 @@ module ForemanMaintain
|
|
16
16
|
@spinner_chars = %w[| / - \\]
|
17
17
|
@current_line = ''
|
18
18
|
@puts_needed = false
|
19
|
-
start_spinner
|
20
19
|
end
|
21
20
|
|
22
21
|
def update(line)
|
@@ -42,8 +41,6 @@ module ForemanMaintain
|
|
42
41
|
end
|
43
42
|
end
|
44
43
|
|
45
|
-
private
|
46
|
-
|
47
44
|
def start_spinner
|
48
45
|
@thread = Thread.new do
|
49
46
|
loop do
|
@@ -53,6 +50,8 @@ module ForemanMaintain
|
|
53
50
|
end
|
54
51
|
end
|
55
52
|
|
53
|
+
private
|
54
|
+
|
56
55
|
def spin
|
57
56
|
@mutex.synchronize do
|
58
57
|
return unless @active
|
@@ -80,6 +79,7 @@ module ForemanMaintain
|
|
80
79
|
@line_char = '-'
|
81
80
|
@cell_char = '|'
|
82
81
|
@spinner = Spinner.new(self)
|
82
|
+
@spinner.start_spinner if @stdout.tty?
|
83
83
|
@last_line = ''
|
84
84
|
end
|
85
85
|
|
@@ -5,7 +5,7 @@ module ForemanMaintain::Utils
|
|
5
5
|
FACTER_FILES = %w[/usr/bin/facter /opt/puppetlabs/bin/facter].freeze
|
6
6
|
|
7
7
|
def self.package
|
8
|
-
puppet_version = version(execute!('puppet --version'))
|
8
|
+
puppet_version = version(execute!('/opt/puppetlabs/bin/puppet --version'))
|
9
9
|
|
10
10
|
puppet_version.major >= 4 ? 'puppet-agent' : 'facter'
|
11
11
|
end
|
@@ -10,6 +10,12 @@ module ForemanMaintain::Utils
|
|
10
10
|
@options = options
|
11
11
|
end
|
12
12
|
|
13
|
+
def socket
|
14
|
+
if @options[:socket]
|
15
|
+
self.class.new("#{@options[:socket]}.socket", priority)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
13
19
|
def <=>(other)
|
14
20
|
prio_cmp = @priority <=> other.priority
|
15
21
|
prio_cmp == 0 ? @name <=> other.name : prio_cmp
|
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: 0.6.
|
4
|
+
version: 0.6.4
|
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: 2020-
|
11
|
+
date: 2020-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clamp
|
@@ -122,7 +122,6 @@ files:
|
|
122
122
|
- definitions/checks/backup/directory_ready.rb
|
123
123
|
- definitions/checks/candlepin/db_up.rb
|
124
124
|
- definitions/checks/candlepin/validate_db.rb
|
125
|
-
- definitions/checks/check_epel_repository.rb
|
126
125
|
- definitions/checks/check_hotfix_installed.rb
|
127
126
|
- definitions/checks/check_tmout.rb
|
128
127
|
- definitions/checks/disk/available_space.rb
|
@@ -148,6 +147,7 @@ files:
|
|
148
147
|
- definitions/checks/puppet/provide_upgrade_guide.rb
|
149
148
|
- definitions/checks/puppet/verify_no_empty_cacert_requests.rb
|
150
149
|
- definitions/checks/remote_execution/verify_settings_file_already_exists.rb
|
150
|
+
- definitions/checks/repositories/check_non_rh_repository.rb
|
151
151
|
- definitions/checks/repositories/check_upstream_repository.rb
|
152
152
|
- definitions/checks/repositories/validate.rb
|
153
153
|
- definitions/checks/restore/validate_backup.rb
|
@@ -158,6 +158,7 @@ files:
|
|
158
158
|
- definitions/checks/system_registration.rb
|
159
159
|
- definitions/checks/version_locking_enabled.rb
|
160
160
|
- definitions/checks/yum_exclude.rb
|
161
|
+
- definitions/features/apache.rb
|
161
162
|
- definitions/features/candlepin.rb
|
162
163
|
- definitions/features/candlepin_database.rb
|
163
164
|
- definitions/features/capsule.rb
|
@@ -264,7 +265,6 @@ files:
|
|
264
265
|
- definitions/procedures/restore/pg_global_objects.rb
|
265
266
|
- definitions/procedures/restore/postgres_owner.rb
|
266
267
|
- definitions/procedures/restore/pulpcore_dump.rb
|
267
|
-
- definitions/procedures/restore/regenerate_missing_queues.rb
|
268
268
|
- definitions/procedures/selinux/set_file_security.rb
|
269
269
|
- definitions/procedures/service/base.rb
|
270
270
|
- definitions/procedures/service/daemon_reload.rb
|
@@ -1,21 +0,0 @@
|
|
1
|
-
class Checks::CheckEpelRepository < ForemanMaintain::Check
|
2
|
-
metadata do
|
3
|
-
label :check_epel_repository
|
4
|
-
description 'Check if EPEL repository enabled on system'
|
5
|
-
tags :pre_upgrade
|
6
|
-
confine do
|
7
|
-
feature(:instance).downstream
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def run
|
12
|
-
with_spinner('Checking for presence of EPEL repository') do
|
13
|
-
assert(!epel_enabled?, 'System is subscribed to EPEL repository')
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def epel_enabled?
|
18
|
-
system_repos = execute("yum repolist enabled -d 6 -e 0| grep -E 'Repo-baseurl|Repo-id'")
|
19
|
-
system_repos.to_s.match(/\bepel\b/i)
|
20
|
-
end
|
21
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
module Procedures::Restore
|
2
|
-
class RegenerateMissingQueues < ForemanMaintain::Procedure
|
3
|
-
|
4
|
-
metadata do
|
5
|
-
description 'Regenrate queues'
|
6
|
-
|
7
|
-
param :handle_services,
|
8
|
-
'Stop and start services if required',
|
9
|
-
:flag => true,
|
10
|
-
:default => false
|
11
|
-
end
|
12
|
-
|
13
|
-
def hostname
|
14
|
-
execute('hostname -f')
|
15
|
-
end
|
16
|
-
|
17
|
-
def ssl_cert
|
18
|
-
"/etc/pki/katello/certs/#{hostanme}-qpid-broker.crt"
|
19
|
-
end
|
20
|
-
|
21
|
-
def ssl_key
|
22
|
-
"/etc/pki/katello/private/#{hostanme}-qpid-broker.key"
|
23
|
-
end
|
24
|
-
|
25
|
-
def amqps_url
|
26
|
-
'amqps://localhost:5671'
|
27
|
-
end
|
28
|
-
|
29
|
-
def run
|
30
|
-
with_spinner('Resetting the queues') do |spinner|
|
31
|
-
reset_queues
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def reset_queues
|
36
|
-
execute!('rm -rf /var/lib/qpidd/.qpidd/qls')
|
37
|
-
Procedures::Service::Start(:only => 'qpidd')
|
38
|
-
puts "Sleeping for 60 seconds for qpid to start fully"
|
39
|
-
sleep 60
|
40
|
-
|
41
|
-
puts "Recreating infrastructure queues.."
|
42
|
-
execute!("qpid-config --ssl-certificate #{ssl_cert} --ssl-key #{ssl_key} -b #{amqps_url} add exchange topic event --durable")
|
43
|
-
execute!("qpid-config --ssl-certificate #{ssl_cert} --ssl-key #{ssl_key} -b #{amqps_url} add queue katello_event_queue --durable")
|
44
|
-
%w[compliance.created entitlement.created entitlement.deleted pool.created pool.deleted].each do |key|
|
45
|
-
execute!("qpid-config --ssl-certificate #{ssl_cert} --ssl-key #{ssl_key} -b #{amqps_url} bind event katello_event_queue #{key}")
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|