foreman_maintain 1.3.3 → 1.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/definitions/features/candlepin_database.rb +0 -22
- data/definitions/features/instance.rb +8 -0
- data/definitions/procedures/backup/offline/candlepin_db.rb +2 -1
- data/definitions/procedures/backup/offline/foreman_db.rb +2 -0
- data/definitions/procedures/backup/offline/pulpcore_db.rb +2 -1
- data/definitions/scenarios/restore.rb +3 -1
- data/lib/foreman_maintain/concerns/base_database.rb +2 -1
- data/lib/foreman_maintain/reporter/cli_reporter.rb +5 -5
- data/lib/foreman_maintain/utils/backup.rb +8 -0
- data/lib/foreman_maintain/version.rb +1 -1
- metadata +6 -7
- data/definitions/checks/candlepin/validate_db.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d90e54ce37bbcb97b38d4362699d2e5fdec4bb6a9c73a6449cebc1c6a20cf970
|
4
|
+
data.tar.gz: 79ddf0919edb2fd587d06d414ade8b01994d197f61069dab8bb2d03c22ad72f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11c9f890ad98bdac65ca98df002386f6c5435a67b2374e1349d7dc8f53cf79a3587f5ff6f449c0b1f5a7b1a24cb9e96254706c9b2eb9e257679cb1eead8b6831
|
7
|
+
data.tar.gz: d827ab0345f35720c3a1eaae0779593b56c6c577f8a72c0aacccc5210cc4d629f8f1a7c2f8afd5371dbdfb042fc2b79414f457d4d69afdbe203d196eb97d60d5
|
@@ -22,26 +22,12 @@ class Features::CandlepinDatabase < ForemanMaintain::Feature
|
|
22
22
|
@configuration || load_configuration
|
23
23
|
end
|
24
24
|
|
25
|
-
def validate_available_in_cpdb?
|
26
|
-
check_option_using_cpdb_help('validate')
|
27
|
-
end
|
28
|
-
|
29
25
|
def check_option_using_cpdb_help(option_name, parent_cmd = '')
|
30
26
|
parent_cmd = '/usr/share/candlepin/cpdb' if parent_cmd.empty?
|
31
27
|
help_cmd = "#{parent_cmd} --help | grep -c '\\-\\-#{option_name}'"
|
32
28
|
execute?(help_cmd)
|
33
29
|
end
|
34
30
|
|
35
|
-
def execute_cpdb_validate_cmd
|
36
|
-
main_cmd = cpdb_validate_cmd
|
37
|
-
return [true, nil] if main_cmd.empty?
|
38
|
-
main_cmd += format_shell_args(
|
39
|
-
'-u' => configuration['username'], '-p' => configuration[%(password)]
|
40
|
-
)
|
41
|
-
main_cmd += format_shell_args(extend_with_db_options)
|
42
|
-
execute_with_status(main_cmd, :hidden_patterns => [configuration['password']])
|
43
|
-
end
|
44
|
-
|
45
31
|
def env_content_ids_with_null_content
|
46
32
|
sql = <<-SQL
|
47
33
|
SELECT ec.id
|
@@ -87,12 +73,4 @@ class Features::CandlepinDatabase < ForemanMaintain::Feature
|
|
87
73
|
output = /#{key_name}=([^&]*)?/.match(query_string)
|
88
74
|
output[1] if output
|
89
75
|
end
|
90
|
-
|
91
|
-
def cpdb_validate_cmd
|
92
|
-
return '' unless check_option_using_cpdb_help('validate')
|
93
|
-
cmd = '/usr/share/candlepin/cpdb --validate'
|
94
|
-
return cmd unless check_option_using_cpdb_help('verbose', cmd)
|
95
|
-
cmd += ' --verbose'
|
96
|
-
cmd
|
97
|
-
end
|
98
76
|
end
|
@@ -28,6 +28,14 @@ class Features::Instance < ForemanMaintain::Feature
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
+
def project_support_entity
|
32
|
+
if downstream
|
33
|
+
'Red Hat Technical Support'
|
34
|
+
else
|
35
|
+
'Foreman Community Support'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
31
39
|
def database_remote?(feature)
|
32
40
|
!!feature(feature) && !feature(feature).local?
|
33
41
|
end
|
@@ -36,7 +36,8 @@ module Procedures::Backup
|
|
36
36
|
pg_backup_file,
|
37
37
|
:listed_incremental => File.join(@backup_dir, '.postgres.snar'),
|
38
38
|
:volume_size => @tar_volume_size,
|
39
|
-
:data_dir => pg_data_dir
|
39
|
+
:data_dir => pg_data_dir,
|
40
|
+
:restore_dir => feature(:candlepin_database).data_dir
|
40
41
|
)
|
41
42
|
end
|
42
43
|
end
|
@@ -39,11 +39,13 @@ module Procedures::Backup
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def do_backup(pg_dir, cmd)
|
42
|
+
restore_dir = el? ? feature(:foreman_database).data_dir : pg_dir
|
42
43
|
feature(:foreman_database).backup_local(
|
43
44
|
pg_backup_file,
|
44
45
|
:listed_incremental => File.join(@backup_dir, '.postgres.snar'),
|
45
46
|
:volume_size => @tar_volume_size,
|
46
47
|
:data_dir => pg_dir,
|
48
|
+
:restore_dir => restore_dir,
|
47
49
|
:command => cmd
|
48
50
|
)
|
49
51
|
end
|
@@ -36,7 +36,8 @@ module Procedures::Backup
|
|
36
36
|
pg_backup_file,
|
37
37
|
:listed_incremental => File.join(@backup_dir, '.postgres.snar'),
|
38
38
|
:volume_size => @tar_volume_size,
|
39
|
-
:data_dir => pg_data_dir
|
39
|
+
:data_dir => pg_data_dir,
|
40
|
+
:restore_dir => feature(:pulpcore_database).data_dir
|
40
41
|
)
|
41
42
|
end
|
42
43
|
end
|
@@ -45,7 +45,9 @@ module ForemanMaintain::Scenarios
|
|
45
45
|
add_step(Procedures::Service::Stop.new(:only => ['postgresql']))
|
46
46
|
end
|
47
47
|
|
48
|
-
if feature(:instance).postgresql_local? &&
|
48
|
+
if feature(:instance).postgresql_local? &&
|
49
|
+
!backup.online_backup? &&
|
50
|
+
backup.different_source_os?
|
49
51
|
add_step_with_context(Procedures::Restore::ReindexDatabases)
|
50
52
|
end
|
51
53
|
|
@@ -101,13 +101,14 @@ module ForemanMaintain
|
|
101
101
|
|
102
102
|
def backup_local(backup_file, extra_tar_options = {})
|
103
103
|
dir = extra_tar_options.fetch(:data_dir, data_dir)
|
104
|
+
restore_dir = extra_tar_options.fetch(:restore_dir, data_dir)
|
104
105
|
command = extra_tar_options.fetch(:command, 'create')
|
105
106
|
|
106
107
|
FileUtils.cd(dir) do
|
107
108
|
tar_options = {
|
108
109
|
:archive => backup_file,
|
109
110
|
:command => command,
|
110
|
-
:transform => "s,^,#{
|
111
|
+
:transform => "s,^,#{restore_dir[1..]},S",
|
111
112
|
:files => '*',
|
112
113
|
}.merge(extra_tar_options)
|
113
114
|
feature(:tar).run(tar_options)
|
@@ -330,20 +330,20 @@ module ForemanMaintain
|
|
330
330
|
whitelist_labels = steps_to_whitelist.map(&:label_dashed).join(',')
|
331
331
|
unless whitelist_labels.empty?
|
332
332
|
recommend << if scenario.detector.feature(:instance).downstream
|
333
|
-
format(<<-MESSAGE.strip_heredoc
|
333
|
+
format(<<-MESSAGE.strip_heredoc)
|
334
334
|
Resolve the failed steps and rerun the command.
|
335
335
|
|
336
336
|
If the situation persists and, you are unclear what to do next,
|
337
|
-
contact
|
337
|
+
contact #{scenario.detector.feature(:instance).project_support_entity}.
|
338
338
|
|
339
339
|
In case the failures are false positives, use
|
340
|
-
--whitelist="
|
340
|
+
--whitelist="#{whitelist_labels}"
|
341
341
|
MESSAGE
|
342
342
|
else
|
343
|
-
format(<<-MESSAGE.strip_heredoc
|
343
|
+
format(<<-MESSAGE.strip_heredoc)
|
344
344
|
Resolve the failed steps and rerun the command.
|
345
345
|
In case the failures are false positives, use
|
346
|
-
--whitelist="
|
346
|
+
--whitelist="#{whitelist_labels}"
|
347
347
|
MESSAGE
|
348
348
|
end
|
349
349
|
end
|
@@ -265,6 +265,14 @@ module ForemanMaintain
|
|
265
265
|
def with_qpidd?
|
266
266
|
installed_rpms.any? { |rpm| rpm.start_with?('qpid-cpp-server-') }
|
267
267
|
end
|
268
|
+
|
269
|
+
def source_os_version
|
270
|
+
metadata.fetch('os_version', 'unknown')
|
271
|
+
end
|
272
|
+
|
273
|
+
def different_source_os?
|
274
|
+
source_os_version != "#{os_name} #{os_version}"
|
275
|
+
end
|
268
276
|
end
|
269
277
|
end
|
270
278
|
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.3.
|
4
|
+
version: 1.3.5
|
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-
|
11
|
+
date: 2023-08-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clamp
|
@@ -160,7 +160,6 @@ files:
|
|
160
160
|
- definitions/checks/backup/certs_tar_exist.rb
|
161
161
|
- definitions/checks/backup/directory_ready.rb
|
162
162
|
- definitions/checks/candlepin/db_up.rb
|
163
|
-
- definitions/checks/candlepin/validate_db.rb
|
164
163
|
- definitions/checks/check_for_newer_packages.rb
|
165
164
|
- definitions/checks/check_hotfix_installed.rb
|
166
165
|
- definitions/checks/check_tmout.rb
|
@@ -434,7 +433,7 @@ homepage: https://github.com/theforeman/foreman_maintain
|
|
434
433
|
licenses:
|
435
434
|
- GPL-3.0
|
436
435
|
metadata: {}
|
437
|
-
post_install_message:
|
436
|
+
post_install_message:
|
438
437
|
rdoc_options: []
|
439
438
|
require_paths:
|
440
439
|
- lib
|
@@ -452,8 +451,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
452
451
|
- !ruby/object:Gem::Version
|
453
452
|
version: '0'
|
454
453
|
requirements: []
|
455
|
-
rubygems_version: 3.
|
456
|
-
signing_key:
|
454
|
+
rubygems_version: 3.3.26
|
455
|
+
signing_key:
|
457
456
|
specification_version: 4
|
458
457
|
summary: Foreman maintenance tool belt
|
459
458
|
test_files: []
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Checks::Candlepin
|
2
|
-
class ValidateDb < ForemanMaintain::Check
|
3
|
-
metadata do
|
4
|
-
description 'Check to validate candlepin database'
|
5
|
-
tags :pre_upgrade
|
6
|
-
|
7
|
-
confine do
|
8
|
-
feature(:candlepin_database)&.validate_available_in_cpdb?
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
def run
|
13
|
-
result, result_msg = feature(:candlepin_database).execute_cpdb_validate_cmd
|
14
|
-
assert(result == 0, result_msg)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|