foreman_maintain 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 582123528806343d919cd45a9503596cd5edb30144742aa579f65a7c65eaa5a4
4
- data.tar.gz: 2735882675a774b98aeb7d41c361bdee8707bf2c25235f420b3cb6cd49e2df7e
2
+ SHA1:
3
+ metadata.gz: 0fce23af3f0916264faaf404caa0164321bcb17d
4
+ data.tar.gz: f65633719449de4778bdc7d5eb6e328ad4b130d3
5
5
  SHA512:
6
- metadata.gz: 02b5862caf25490bcfa6e8aebcae31ada850eee4492381400255cf9de651ca1e862d5a564b9178c7f239226d2c9ddca0cfb200880d112e2939db97b8ac28ca41
7
- data.tar.gz: 7fa363c783df0e07e8cec7dd086001e8e082f156c6e512766579484f16ca69d014b2944a320faae65747f7695a83e81c347def707a122335819546ae254f0b8f
6
+ metadata.gz: 11b1ad761ebc5e73f2c4d211246f68825b1cf698b3d2ab7c8f60603d63005e57c0044b38b16ed9489b3ec8ae93bc5f79a4ece069e73760d600debe4ee37c8481
7
+ data.tar.gz: 7fb92a17ea9e84cbc480844887580128887f915bdee78e88543581bc611c7fe5253694d26abed0363f082314e5e6686e7d7d079fbe3d5344a24ec2b9a3aedf2a
@@ -30,6 +30,10 @@ class Features::Mongo < ForemanMaintain::Feature
30
30
  end
31
31
 
32
32
  def initialize
33
+ reload_db_config
34
+ end
35
+
36
+ def reload_db_config
33
37
  @configuration = load_db_config(config_file)
34
38
  end
35
39
 
@@ -14,6 +14,7 @@ module Procedures::Restore
14
14
  spinner.update('Restoring configs')
15
15
  clean_conflicting_data
16
16
  restore_configs(backup)
17
+ reload_configs
17
18
  end
18
19
  end
19
20
 
@@ -30,6 +31,10 @@ module Procedures::Restore
30
31
  feature(:tar).run(tar_options)
31
32
  end
32
33
 
34
+ def reload_configs
35
+ feature(:mongo).reload_db_config if feature(:mongo)
36
+ end
37
+
33
38
  private
34
39
 
35
40
  def clean_conflicting_data
@@ -0,0 +1,35 @@
1
+ module Procedures::Restore
2
+ class EnsureMongoEngineMatches < ForemanMaintain::Procedure
3
+ metadata do
4
+ description 'Ensure restored MongoDB storage engine matches the current DB'
5
+ for_feature :mongo
6
+ end
7
+
8
+ # rubocop:disable Metrics/AbcSize
9
+ def run
10
+ if feature(:mongo).local? && mongo_data_dir_exists? && engine_mismatch?
11
+ with_spinner('Clean MongoDB data') do |spinner|
12
+ feature(:service).handle_services(spinner, 'stop', :only => feature(:mongo).services)
13
+ spinner.update('Clean MongoDB data')
14
+ data_path = Dir[feature(:mongo).data_dir + '/*']
15
+ FileUtils.rm_rf(data_path)
16
+ FileUtils.rm_rf('/var/tmp/mongodb_engine_upgrade')
17
+ feature(:service).handle_services(spinner, 'start', :only => feature(:mongo).services)
18
+ end
19
+ end
20
+ end
21
+ # rubocop:enable Metrics/AbcSize
22
+
23
+ private
24
+
25
+ def engine_mismatch?
26
+ tiger_file = File.join(feature(:mongo).data_dir, 'WiredTiger.wt')
27
+ config_file = feature(:mongo).core.server_config_files.first
28
+ File.exist?(tiger_file) && File.open(config_file).grep(/^storage.engine:\s*mmapv1/).any?
29
+ end
30
+
31
+ def mongo_data_dir_exists?
32
+ File.directory?(feature(:mongo).data_dir)
33
+ end
34
+ end
35
+ end
@@ -2,19 +2,11 @@ module Procedures::Restore
2
2
  class InstallerReset < ForemanMaintain::Procedure
3
3
  metadata do
4
4
  description 'Run installer reset'
5
-
6
- param :incremental_backup,
7
- 'Is the backup incremental?'
8
5
  end
9
6
 
10
7
  def run
11
- with_spinner('Resetting') do |spinner|
12
- if @incremental_backup
13
- spinner.update('Skipping installer reset for incremental update')
14
- else
15
- spinner.update('Installer reset')
16
- execute!(installer_cmd)
17
- end
8
+ with_spinner('Installer reset') do
9
+ execute!(installer_cmd)
18
10
  end
19
11
  end
20
12
 
@@ -19,9 +19,12 @@ module ForemanMaintain::Scenarios
19
19
  Procedures::Restore::Confirmation,
20
20
  Checks::Restore::ValidateHostname,
21
21
  Procedures::Selinux::SetFileSecurity,
22
- Procedures::Restore::Configs,
23
- Procedures::Restore::InstallerReset,
24
- Procedures::Service::Stop)
22
+ Procedures::Restore::Configs)
23
+ unless backup.incremental?
24
+ add_steps_with_context(Procedures::Restore::EnsureMongoEngineMatches,
25
+ Procedures::Restore::InstallerReset)
26
+ end
27
+ add_step_with_context(Procedures::Service::Stop)
25
28
  add_steps_with_context(Procedures::Restore::ExtractFiles) if backup.tar_backups_exist?
26
29
  drop_dbs(backup)
27
30
  if backup.sql_dump_files_exist? && feature(:instance).postgresql_local?
@@ -84,8 +87,7 @@ module ForemanMaintain::Scenarios
84
87
  Procedures::Restore::MongoDump => :backup_dir)
85
88
 
86
89
  context.map(:incremental_backup,
87
- Procedures::Selinux::SetFileSecurity => :incremental_backup,
88
- Procedures::Restore::InstallerReset => :incremental_backup)
90
+ Procedures::Selinux::SetFileSecurity => :incremental_backup)
89
91
  end
90
92
  end
91
93
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.3.1'.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: 0.3.0
4
+ version: 0.3.1
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: 2018-11-08 00:00:00.000000000 Z
11
+ date: 2019-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp
@@ -212,6 +212,7 @@ files:
212
212
  - definitions/procedures/restore/configs.rb
213
213
  - definitions/procedures/restore/confirmation.rb
214
214
  - definitions/procedures/restore/drop_databases.rb
215
+ - definitions/procedures/restore/ensure_mongo_engine_matches.rb
215
216
  - definitions/procedures/restore/extract_files.rb
216
217
  - definitions/procedures/restore/foreman_dump.rb
217
218
  - definitions/procedures/restore/installer_reset.rb
@@ -326,7 +327,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
326
327
  version: '0'
327
328
  requirements: []
328
329
  rubyforge_project:
329
- rubygems_version: 2.7.3
330
+ rubygems_version: 2.6.12
330
331
  signing_key:
331
332
  specification_version: 4
332
333
  summary: Foreman maintenance tool belt