foreman_maintain 0.6.2 → 0.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 +4 -4
- data/README.md +4 -0
- data/definitions/checks/check_hotfix_installed.rb +2 -1
- data/definitions/checks/disk/performance.rb +24 -9
- data/definitions/checks/env_proxy.rb +13 -0
- data/definitions/checks/foreman/check_corrupted_roles.rb +14 -2
- data/definitions/checks/foreman/validate_external_db_version.rb +28 -0
- data/definitions/checks/foreman_proxy/check_tftp_storage.rb +52 -0
- data/definitions/checks/original_assets.rb +1 -0
- 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/capsule.rb +2 -1
- data/definitions/features/dynflow_sidekiq.rb +1 -1
- data/definitions/features/foreman_proxy.rb +30 -5
- data/definitions/features/foreman_server.rb +10 -4
- data/definitions/features/installer.rb +9 -2
- data/definitions/features/puppet_server.rb +6 -2
- data/definitions/features/service.rb +10 -3
- data/definitions/procedures/backup/metadata.rb +2 -0
- data/definitions/procedures/content/prepare.rb +1 -1
- data/definitions/procedures/content/switchover.rb +9 -4
- 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/restore/configs.rb +6 -0
- data/definitions/procedures/restore/regenerate_queues.rb +69 -0
- data/definitions/procedures/service/stop.rb +1 -1
- data/definitions/scenarios/backup.rb +1 -0
- data/definitions/scenarios/content.rb +27 -0
- data/definitions/scenarios/packages.rb +39 -16
- data/definitions/scenarios/restore.rb +17 -2
- data/definitions/scenarios/upgrade_to_capsule_6_8.rb +88 -0
- data/definitions/scenarios/upgrade_to_capsule_6_8_z.rb +88 -0
- data/definitions/scenarios/upgrade_to_satellite_6_2.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_3.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_4.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_5.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_5_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_6.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_6_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_7.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_7_z.rb +13 -5
- data/definitions/scenarios/upgrade_to_satellite_6_8.rb +88 -0
- data/definitions/scenarios/upgrade_to_satellite_6_8_z.rb +88 -0
- data/lib/foreman_maintain.rb +31 -0
- data/lib/foreman_maintain/cli.rb +2 -0
- data/lib/foreman_maintain/cli/content_command.rb +17 -0
- data/lib/foreman_maintain/cli/restore_command.rb +2 -1
- data/lib/foreman_maintain/cli/upgrade_command.rb +10 -0
- data/lib/foreman_maintain/concerns/base_database.rb +11 -0
- data/lib/foreman_maintain/concerns/downstream.rb +10 -10
- 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/upgrade_runner.rb +20 -26
- data/lib/foreman_maintain/utils/backup.rb +4 -0
- 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 +15 -4
- data/definitions/checks/check_epel_repository.rb +0 -21
@@ -2,13 +2,19 @@ module Scenarios::Satellite_6_6_z
|
|
2
2
|
class Abstract < ForemanMaintain::Scenario
|
3
3
|
def self.upgrade_metadata(&block)
|
4
4
|
metadata do
|
5
|
-
tags :
|
5
|
+
tags :upgrade_scenario
|
6
6
|
confine do
|
7
|
-
feature(:satellite) &&
|
7
|
+
feature(:satellite) &&
|
8
|
+
(feature(:satellite).current_minor_version == '6.6' || \
|
9
|
+
ForemanMaintain.upgrade_in_progress == '6.6.z')
|
8
10
|
end
|
9
11
|
instance_eval(&block)
|
10
12
|
end
|
11
13
|
end
|
14
|
+
|
15
|
+
def target_version
|
16
|
+
'6.6.z'
|
17
|
+
end
|
12
18
|
end
|
13
19
|
|
14
20
|
class PreUpgradeCheck < Abstract
|
@@ -43,11 +49,15 @@ module Scenarios::Satellite_6_6_z
|
|
43
49
|
tags :migrations
|
44
50
|
end
|
45
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
46
56
|
def compose
|
47
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.6'))
|
48
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
49
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
50
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
51
61
|
end
|
52
62
|
end
|
53
63
|
|
@@ -78,5 +88,3 @@ module Scenarios::Satellite_6_6_z
|
|
78
88
|
end
|
79
89
|
end
|
80
90
|
end
|
81
|
-
|
82
|
-
ForemanMaintain::UpgradeRunner.register_version('6.6.z', :upgrade_to_satellite_6_6_z)
|
@@ -2,13 +2,19 @@ module Scenarios::Satellite_6_7
|
|
2
2
|
class Abstract < ForemanMaintain::Scenario
|
3
3
|
def self.upgrade_metadata(&block)
|
4
4
|
metadata do
|
5
|
-
tags :
|
5
|
+
tags :upgrade_scenario
|
6
6
|
confine do
|
7
|
-
feature(:satellite) &&
|
7
|
+
feature(:satellite) &&
|
8
|
+
(feature(:satellite).current_minor_version == '6.6' || \
|
9
|
+
ForemanMaintain.upgrade_in_progress == '6.7')
|
8
10
|
end
|
9
11
|
instance_eval(&block)
|
10
12
|
end
|
11
13
|
end
|
14
|
+
|
15
|
+
def target_version
|
16
|
+
'6.7'
|
17
|
+
end
|
12
18
|
end
|
13
19
|
|
14
20
|
class PreUpgradeCheck < Abstract
|
@@ -43,11 +49,15 @@ module Scenarios::Satellite_6_7
|
|
43
49
|
tags :migrations
|
44
50
|
end
|
45
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
46
56
|
def compose
|
47
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
48
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
49
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
50
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
51
61
|
end
|
52
62
|
end
|
53
63
|
|
@@ -76,5 +86,3 @@ module Scenarios::Satellite_6_7
|
|
76
86
|
end
|
77
87
|
end
|
78
88
|
end
|
79
|
-
|
80
|
-
ForemanMaintain::UpgradeRunner.register_version('6.7', :upgrade_to_satellite_6_7)
|
@@ -2,13 +2,19 @@ module Scenarios::Satellite_6_7_z
|
|
2
2
|
class Abstract < ForemanMaintain::Scenario
|
3
3
|
def self.upgrade_metadata(&block)
|
4
4
|
metadata do
|
5
|
-
tags :
|
5
|
+
tags :upgrade_scenario
|
6
6
|
confine do
|
7
|
-
feature(:satellite) &&
|
7
|
+
feature(:satellite) &&
|
8
|
+
(feature(:satellite).current_minor_version == '6.7' || \
|
9
|
+
ForemanMaintain.upgrade_in_progress == '6.7.z')
|
8
10
|
end
|
9
11
|
instance_eval(&block)
|
10
12
|
end
|
11
13
|
end
|
14
|
+
|
15
|
+
def target_version
|
16
|
+
'6.7.z'
|
17
|
+
end
|
12
18
|
end
|
13
19
|
|
14
20
|
class PreUpgradeCheck < Abstract
|
@@ -43,11 +49,15 @@ module Scenarios::Satellite_6_7_z
|
|
43
49
|
tags :migrations
|
44
50
|
end
|
45
51
|
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
46
56
|
def compose
|
47
57
|
add_step(Procedures::Repositories::Setup.new(:version => '6.7'))
|
48
58
|
add_step(Procedures::Packages::UnlockVersions.new)
|
49
59
|
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
50
|
-
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
51
61
|
end
|
52
62
|
end
|
53
63
|
|
@@ -76,5 +86,3 @@ module Scenarios::Satellite_6_7_z
|
|
76
86
|
end
|
77
87
|
end
|
78
88
|
end
|
79
|
-
|
80
|
-
ForemanMaintain::UpgradeRunner.register_version('6.7.z', :upgrade_to_satellite_6_7_z)
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module Scenarios::Satellite_6_8
|
2
|
+
class Abstract < ForemanMaintain::Scenario
|
3
|
+
def self.upgrade_metadata(&block)
|
4
|
+
metadata do
|
5
|
+
tags :upgrade_scenario
|
6
|
+
confine do
|
7
|
+
feature(:satellite) &&
|
8
|
+
(feature(:satellite).current_minor_version == '6.7' || \
|
9
|
+
ForemanMaintain.upgrade_in_progress == '6.8')
|
10
|
+
end
|
11
|
+
instance_eval(&block)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def target_version
|
16
|
+
'6.8'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class PreUpgradeCheck < Abstract
|
21
|
+
upgrade_metadata do
|
22
|
+
description 'Checks before upgrading to Satellite 6.8'
|
23
|
+
tags :pre_upgrade_checks
|
24
|
+
run_strategy :fail_slow
|
25
|
+
end
|
26
|
+
|
27
|
+
def compose
|
28
|
+
add_steps(find_checks(:default))
|
29
|
+
add_steps(find_checks(:pre_upgrade))
|
30
|
+
add_step(Checks::Repositories::Validate.new(:version => '6.8'))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class PreMigrations < Abstract
|
35
|
+
upgrade_metadata do
|
36
|
+
description 'Procedures before migrating to Satellite 6.8'
|
37
|
+
tags :pre_migrations
|
38
|
+
end
|
39
|
+
|
40
|
+
def compose
|
41
|
+
add_steps(find_procedures(:pre_migrations))
|
42
|
+
add_step(Procedures::Service::Stop.new)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class Migrations < Abstract
|
47
|
+
upgrade_metadata do
|
48
|
+
description 'Migration scripts to Satellite 6.8'
|
49
|
+
tags :migrations
|
50
|
+
end
|
51
|
+
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
56
|
+
def compose
|
57
|
+
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
58
|
+
add_step(Procedures::Packages::UnlockVersions.new)
|
59
|
+
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class PostMigrations < Abstract
|
65
|
+
upgrade_metadata do
|
66
|
+
description 'Procedures after migrating to Satellite 6.8'
|
67
|
+
tags :post_migrations
|
68
|
+
end
|
69
|
+
|
70
|
+
def compose
|
71
|
+
add_step(Procedures::Service::Start.new)
|
72
|
+
add_steps(find_procedures(:post_migrations))
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
class PostUpgradeChecks < Abstract
|
77
|
+
upgrade_metadata do
|
78
|
+
description 'Checks after upgrading to Satellite 6.8'
|
79
|
+
tags :post_upgrade_checks
|
80
|
+
run_strategy :fail_slow
|
81
|
+
end
|
82
|
+
|
83
|
+
def compose
|
84
|
+
add_steps(find_checks(:default))
|
85
|
+
add_steps(find_checks(:post_upgrade))
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module Scenarios::Satellite_6_8_z
|
2
|
+
class Abstract < ForemanMaintain::Scenario
|
3
|
+
def self.upgrade_metadata(&block)
|
4
|
+
metadata do
|
5
|
+
tags :upgrade_scenario
|
6
|
+
confine do
|
7
|
+
feature(:satellite) &&
|
8
|
+
(feature(:satellite).current_minor_version == '6.8' || \
|
9
|
+
ForemanMaintain.upgrade_in_progress == '6.8.z')
|
10
|
+
end
|
11
|
+
instance_eval(&block)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def target_version
|
16
|
+
'6.8.z'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class PreUpgradeCheck < Abstract
|
21
|
+
upgrade_metadata do
|
22
|
+
description 'Checks before upgrading to Satellite 6.8.z'
|
23
|
+
tags :pre_upgrade_checks
|
24
|
+
run_strategy :fail_slow
|
25
|
+
end
|
26
|
+
|
27
|
+
def compose
|
28
|
+
add_steps(find_checks(:default))
|
29
|
+
add_steps(find_checks(:pre_upgrade))
|
30
|
+
add_step(Checks::Repositories::Validate.new(:version => '6.8'))
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class PreMigrations < Abstract
|
35
|
+
upgrade_metadata do
|
36
|
+
description 'Procedures before migrating to Satellite 6.8.z'
|
37
|
+
tags :pre_migrations
|
38
|
+
end
|
39
|
+
|
40
|
+
def compose
|
41
|
+
add_steps(find_procedures(:pre_migrations))
|
42
|
+
add_step(Procedures::Service::Stop.new)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class Migrations < Abstract
|
47
|
+
upgrade_metadata do
|
48
|
+
description 'Migration scripts to Satellite 6.8.z'
|
49
|
+
tags :migrations
|
50
|
+
end
|
51
|
+
|
52
|
+
def set_context_mapping
|
53
|
+
context.map(:assumeyes, Procedures::Installer::Upgrade => :assumeyes)
|
54
|
+
end
|
55
|
+
|
56
|
+
def compose
|
57
|
+
add_step(Procedures::Repositories::Setup.new(:version => '6.8'))
|
58
|
+
add_step(Procedures::Packages::UnlockVersions.new)
|
59
|
+
add_step(Procedures::Packages::Update.new(:assumeyes => true))
|
60
|
+
add_step_with_context(Procedures::Installer::Upgrade)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
class PostMigrations < Abstract
|
65
|
+
upgrade_metadata do
|
66
|
+
description 'Procedures after migrating to Satellite 6.8.z'
|
67
|
+
tags :post_migrations
|
68
|
+
end
|
69
|
+
|
70
|
+
def compose
|
71
|
+
add_step(Procedures::Service::Start.new)
|
72
|
+
add_steps(find_procedures(:post_migrations))
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
class PostUpgradeChecks < Abstract
|
77
|
+
upgrade_metadata do
|
78
|
+
description 'Checks after upgrading to Satellite 6.8.z'
|
79
|
+
tags :post_upgrade_checks
|
80
|
+
run_strategy :fail_slow
|
81
|
+
end
|
82
|
+
|
83
|
+
def compose
|
84
|
+
add_steps(find_checks(:default))
|
85
|
+
add_steps(find_checks(:post_upgrade))
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/foreman_maintain.rb
CHANGED
@@ -139,5 +139,36 @@ module ForemanMaintain
|
|
139
139
|
rescue StandardError => e
|
140
140
|
logger.error "Invalid Storage label i.e #{label}. Error - #{e.message}"
|
141
141
|
end
|
142
|
+
|
143
|
+
def upgrade_in_progress
|
144
|
+
storage[:upgrade_target_version]
|
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
|
142
173
|
end
|
143
174
|
end
|
data/lib/foreman_maintain/cli.rb
CHANGED
@@ -10,6 +10,7 @@ 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'
|
13
14
|
|
14
15
|
module ForemanMaintain
|
15
16
|
module Cli
|
@@ -23,6 +24,7 @@ module ForemanMaintain
|
|
23
24
|
subcommand 'restore', 'Restore a backup', RestoreCommand
|
24
25
|
subcommand 'packages', 'Lock/Unlock package protection, install, update', PackagesCommand
|
25
26
|
subcommand 'advanced', 'Advanced tools for server maintenance', AdvancedCommand
|
27
|
+
subcommand 'content', 'Content related commands', ContentCommand
|
26
28
|
subcommand 'maintenance-mode', 'Control maintenance-mode for application',
|
27
29
|
MaintenanceModeCommand
|
28
30
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module ForemanMaintain
|
2
|
+
module Cli
|
3
|
+
class ContentCommand < Base
|
4
|
+
subcommand 'prepare', 'Prepare content for Pulp 3' do
|
5
|
+
def execute
|
6
|
+
run_scenarios_and_exit(Scenarios::Content::Prepare.new)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
subcommand 'switchover', 'Switch support for certain content from Pulp 2 to Pulp 3' do
|
11
|
+
def execute
|
12
|
+
run_scenarios_and_exit(Scenarios::Content::Switchover.new)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -13,7 +13,8 @@ module ForemanMaintain
|
|
13
13
|
:backup_dir => @backup_dir,
|
14
14
|
:incremental_backup => @incremental || incremental_backup?
|
15
15
|
)
|
16
|
-
|
16
|
+
rescue_scenario = Scenarios::RestoreRescue.new
|
17
|
+
run_scenario(scenario, rescue_scenario)
|
17
18
|
exit runner.exit_code
|
18
19
|
end
|
19
20
|
|
@@ -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
|
@@ -150,6 +150,17 @@ module ForemanMaintain
|
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
|
+
def db_version(config = configuration)
|
154
|
+
if ping(config)
|
155
|
+
# Note - t removes headers, -A removes alignment whitespace
|
156
|
+
server_version_cmd = psql_command(config) + ' -c "SHOW server_version" -t -A'
|
157
|
+
version_string = execute!(server_version_cmd, :hidden_patterns => [config['password']])
|
158
|
+
version(version_string)
|
159
|
+
else
|
160
|
+
raise_service_error
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
153
164
|
private
|
154
165
|
|
155
166
|
def base_command(config, command = 'psql')
|