foreman_maintain 1.3.2 → 1.3.4

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: a074a4ff24a5bb600f21eea3957d5140984b7a107a9d9f660a6619bc5078a9b2
4
- data.tar.gz: 34e3377c6e482e89b0e1263592bc93559fd68366b7b8c02144839746b614007e
3
+ metadata.gz: 467793fe18d5403460cbb877a9b42e8b6c9f82aaf3e876988c444baf0d472e17
4
+ data.tar.gz: f963b22148f4e08f0daee4a2af1fd479bc655aff1ec6b14c41fe249b51d4e188
5
5
  SHA512:
6
- metadata.gz: 4529548ad99bf3dd8b074840ec2b8c717f3a3ce88a715135d1e66219b932a63f6482a34eb7e3440b7329936371cce18268373c250540d61ba8046e63847e17b5
7
- data.tar.gz: 16d307e273f41e8cd6f58812ec74f9c531ab857ce370b1455792232e6360544c231d665e23e11cf99d3e4263dd99ef7fdb0d63117aad87a9b8982deb0138d5d2
6
+ metadata.gz: cfce108a55c8f37f82da2b07081a3362f47267a95926e105c74dfc6602eb48ee424603026c9aec32d26e263a1e84deab68a7008953bcfece418029533d14376c
7
+ data.tar.gz: 8e8f0b94739d7e03f1ca3e8f197013780c030ab46a9d5c6f81c4ee7d2169d37c5d9a21fdd779544c947abb87b8346f67b2b9de7ebe2707c94b6afc4ec9e7298b
@@ -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
@@ -0,0 +1,23 @@
1
+ module Procedures::Restore
2
+ class RequiredPackages < ForemanMaintain::Procedure
3
+ metadata do
4
+ description 'Ensure required packages are installed before restore'
5
+
6
+ param :backup_dir,
7
+ 'Path to backup directory',
8
+ :required => true
9
+ end
10
+
11
+ def run
12
+ backup = ForemanMaintain::Utils::Backup.new(@backup_dir)
13
+ required_packages = []
14
+ required_packages << 'puppetserver' if backup.with_puppetserver?
15
+ required_packages << 'qpid-cpp-server' if backup.with_qpidd?
16
+ if required_packages.any?
17
+ with_spinner('Installing required packages') do
18
+ ForemanMaintain.package_manager.install(required_packages, assumeyes: true)
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -28,6 +28,7 @@ module ForemanMaintain::Scenarios
28
28
 
29
29
  add_steps_with_context(Procedures::Restore::Confirmation,
30
30
  Procedures::Selinux::SetFileSecurity,
31
+ Procedures::Restore::RequiredPackages,
31
32
  Procedures::Restore::Configs)
32
33
  add_step_with_context(Procedures::Crond::Stop) if feature(:cron)
33
34
  unless backup.incremental?
@@ -44,7 +45,9 @@ module ForemanMaintain::Scenarios
44
45
  add_step(Procedures::Service::Stop.new(:only => ['postgresql']))
45
46
  end
46
47
 
47
- if feature(:instance).postgresql_local? && !backup.online_backup?
48
+ if feature(:instance).postgresql_local? &&
49
+ !backup.online_backup? &&
50
+ backup.different_source_os?
48
51
  add_step_with_context(Procedures::Restore::ReindexDatabases)
49
52
  end
50
53
 
@@ -88,6 +91,7 @@ module ForemanMaintain::Scenarios
88
91
  Checks::Restore::ValidateHostname => :backup_dir,
89
92
  Checks::Restore::ValidateInterfaces => :backup_dir,
90
93
  Checks::Restore::ValidatePostgresqlDumpPermissions => :backup_dir,
94
+ Procedures::Restore::RequiredPackages => :backup_dir,
91
95
  Procedures::Restore::Configs => :backup_dir,
92
96
  Procedures::Restore::DropDatabases => :backup_dir,
93
97
  Procedures::Restore::CandlepinDump => :backup_dir,
@@ -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, whitelist_labels)
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 Red Hat Technical Support.
337
+ contact #{scenario.detector.feature(:instance).project_support_entity}.
338
338
 
339
339
  In case the failures are false positives, use
340
- --whitelist="%s"
340
+ --whitelist="#{whitelist_labels}"
341
341
  MESSAGE
342
342
  else
343
- format(<<-MESSAGE.strip_heredoc, whitelist_labels)
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="%s"
346
+ --whitelist="#{whitelist_labels}"
347
347
  MESSAGE
348
348
  end
349
349
  end
@@ -253,6 +253,26 @@ module ForemanMaintain
253
253
  def online_backup?
254
254
  !!metadata.fetch('online', false)
255
255
  end
256
+
257
+ def installed_rpms
258
+ metadata.fetch('rpms', metadata.fetch(:rpms, []))
259
+ end
260
+
261
+ def with_puppetserver?
262
+ installed_rpms.any? { |rpm| rpm.start_with?('puppetserver-') }
263
+ end
264
+
265
+ def with_qpidd?
266
+ installed_rpms.any? { |rpm| rpm.start_with?('qpid-cpp-server-') }
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
256
276
  end
257
277
  end
258
278
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.3.2'.freeze
2
+ VERSION = '1.3.4'.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.3.2
4
+ version: 1.3.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: 2023-06-06 00:00:00.000000000 Z
11
+ date: 2023-08-11 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
@@ -313,6 +312,7 @@ files:
313
312
  - definitions/procedures/restore/postgres_owner.rb
314
313
  - definitions/procedures/restore/pulpcore_dump.rb
315
314
  - definitions/procedures/restore/reindex_databases.rb
315
+ - definitions/procedures/restore/required_packages.rb
316
316
  - definitions/procedures/selinux/set_file_security.rb
317
317
  - definitions/procedures/service/base.rb
318
318
  - definitions/procedures/service/daemon_reload.rb
@@ -451,7 +451,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
451
451
  - !ruby/object:Gem::Version
452
452
  version: '0'
453
453
  requirements: []
454
- rubygems_version: 3.2.33
454
+ rubygems_version: 3.4.10
455
455
  signing_key:
456
456
  specification_version: 4
457
457
  summary: Foreman maintenance tool belt
@@ -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