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 +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
|