foreman_maintain 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/definitions/features/mongo.rb +4 -0
- data/definitions/procedures/restore/configs.rb +5 -0
- data/definitions/procedures/restore/ensure_mongo_engine_matches.rb +35 -0
- data/definitions/procedures/restore/installer_reset.rb +2 -10
- data/definitions/scenarios/restore.rb +7 -5
- data/lib/foreman_maintain/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0fce23af3f0916264faaf404caa0164321bcb17d
|
4
|
+
data.tar.gz: f65633719449de4778bdc7d5eb6e328ad4b130d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11b1ad761ebc5e73f2c4d211246f68825b1cf698b3d2ab7c8f60603d63005e57c0044b38b16ed9489b3ec8ae93bc5f79a4ece069e73760d600debe4ee37c8481
|
7
|
+
data.tar.gz: 7fb92a17ea9e84cbc480844887580128887f915bdee78e88543581bc611c7fe5253694d26abed0363f082314e5e6686e7d7d079fbe3d5344a24ec2b9a3aedf2a
|
@@ -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('
|
12
|
-
|
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
|
-
|
24
|
-
|
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
|
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.
|
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:
|
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.
|
330
|
+
rubygems_version: 2.6.12
|
330
331
|
signing_key:
|
331
332
|
specification_version: 4
|
332
333
|
summary: Foreman maintenance tool belt
|