mondupe 0.0.34 → 0.0.35
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/mondupe +1 -0
- data/lib/mondupe.rb +15 -19
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 09d1178f6114f5753a0085ebd2cb18b9a00002fd
|
4
|
+
data.tar.gz: 13ab96c86ca846ff06af27e71bbecad50acaaa2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ab3b7c62aeb7cabbb332da35483ea1d695014c5d6abba1f218c3b1c86c87fc011f2dfd983b60b14ac01dd8f97ca236a360f3203236c69e323649dfcf9a3c2bd
|
7
|
+
data.tar.gz: 725e2f6dfdf4fb4f8bc60a3cb67dbbe37bece5ecad4251028170d7092e25a99a48f75d9666e1a1a345976f9cbece8ae83e0ab92593ad5e004e94e4fcd1642584
|
data/bin/mondupe
CHANGED
data/lib/mondupe.rb
CHANGED
@@ -86,21 +86,25 @@ class Mondupe
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
+
def try_command(tries, command)
|
90
|
+
begin
|
91
|
+
`#{command}` or raise "Failure"
|
92
|
+
rescue
|
93
|
+
tries -= 1
|
94
|
+
if tries > 0
|
95
|
+
puts "Trying again. #{tries} left."
|
96
|
+
retry
|
97
|
+
end
|
98
|
+
puts "Failed after #{tries} retries..."
|
99
|
+
end
|
100
|
+
end
|
89
101
|
|
90
102
|
def bootstrap(instance_name, instance_fqdn, instance_ipaddress, chef_environment, chef_identity_file, chef_run_list, ssh_user, knife_exec)
|
91
103
|
# Bootstrap the new instance with chef
|
92
104
|
puts "Bootstraping node with Chef..."
|
93
105
|
puts "Running..."
|
94
106
|
#puts "#{knife_exec} bootstrap #{instance_ipaddress} -N #{instance_fqdn[0...-1]} -E #{chef_environment} -i #{chef_identity_file} -r #{chef_run_list} -x #{ssh_user} --sudo"
|
95
|
-
|
96
|
-
begin
|
97
|
-
sleep 30
|
98
|
-
system("#{knife_exec} bootstrap #{instance_ipaddress} -N #{instance_fqdn[0...-1]} -E #{chef_environment} -i #{chef_identity_file} -r #{chef_run_list} -x #{ssh_user} --sudo") or raise "Knife bootstrap failed"
|
99
|
-
rescue
|
100
|
-
tries -= 1
|
101
|
-
puts "Cannot connect to node, trying again... #{tries} left."
|
102
|
-
retry if tries > 0
|
103
|
-
end
|
107
|
+
try_command(20, "#{knife_exec} bootstrap #{instance_ipaddress} -N #{instance_fqdn[0...-1]} -E #{chef_environment} -i #{chef_identity_file} -r #{chef_run_list} -x #{ssh_user} --sudo") or abort "Knife bootstrap failed"
|
104
108
|
end
|
105
109
|
|
106
110
|
def get_db_dump_from_s3(instance_ip, s3_bucket_name, dump_tmp_path, ssh_user, dump_file_name)
|
@@ -128,15 +132,7 @@ class Mondupe
|
|
128
132
|
db_connect_string = "mongo #{mongo_db_name}"
|
129
133
|
db_connect_string << " -u \"#{mongo_user}\" -p \"#{mongo_pass}\"" if !mongo_user.nil? && !mongo_pass.nil?
|
130
134
|
db_connect_string << " --authenticationDatabase \"#{mongo_auth_db}\"" if !mongo_auth_db.nil?
|
131
|
-
|
132
|
-
begin
|
133
|
-
`#{ssh_command} "echo 'db.serverStatus()' | #{db_connect_string}"` or raise "Connection failed..."
|
134
|
-
sleep 20
|
135
|
-
rescue
|
136
|
-
tries -= 1
|
137
|
-
puts "Could not connect to DB. Trying again... #{tries} left."
|
138
|
-
retry if tries > 0
|
139
|
-
end
|
135
|
+
try_command(20, "#{ssh_command} \"echo 'db.serverStatus()' | #{db_connect_string}\"") or abort "Failed to connect"
|
140
136
|
puts "#{Time.now.to_s} - Dropping existing database"
|
141
137
|
`#{ssh_command} "#{db_connect_string} --eval 'db.dropDatabase()'"`
|
142
138
|
if $?.success? then puts "#{Time.now.to_s} - Database drop complete" else abort("Error dropping database") end
|
@@ -162,7 +158,7 @@ class Mondupe
|
|
162
158
|
#puts "Connect String: #{db_connect_string}"
|
163
159
|
puts "#{Time.now.to_s} - Running command on #{instance_dns} against #{mongo_db_name}"
|
164
160
|
puts "JS Query: #{java_command}"
|
165
|
-
db_output =
|
161
|
+
db_output = try_command(20, "ssh -i #{ssh_key} #{ssh_user}@#{instance_dns} \"#{db_connect_string} --eval '#{java_command}'\"") or abort "Failed to run command"
|
166
162
|
puts db_output
|
167
163
|
if $?.success? then puts "#{Time.now.to_s} - Command execution complete" else abort("Error executing command") end
|
168
164
|
end
|