mondupe 0.0.16 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/mondupe +11 -0
  3. data/lib/mondupe.rb +10 -0
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95e768f84c52ed4e52e380b3c03634169a691db6
4
- data.tar.gz: ecdaa9b5f8a103ce2fe03f8d75aa414a1a96ef91
3
+ metadata.gz: 76a46f83862e1b3a96d2731f875b373a251f1a3a
4
+ data.tar.gz: f3d8d5c03a12633fbeb4cff474df37a8dc0a147c
5
5
  SHA512:
6
- metadata.gz: 12497ac1832a3bd02dfa121e83087d0d3e27921edd1180e8aa5f41e3489daf3b053712b1bf0ef79eacf2614e4fa387f19ea2df87370de22da6aca188fd5886d7
7
- data.tar.gz: 01abff5c092bbf2be1ab6ae75b22792fd5b3a321465f138955ce610f42456c8492047296ea96ae25a099f033f6d4b7922a1cd0e956791ba513bda666ca0189b6
6
+ metadata.gz: 111faa887abb9121adf473445303a46201586dc483c4b2d5aea257be96e94638aa8ac03427a4aa3aaef5913e4471167a1f7332bd7bfab4ec3ffe0e8686b2c730
7
+ data.tar.gz: 7308ce51eeee098c3a212bbf3f0c80d4b08c579724ba338ee3b3bc7ffe095988b3ccff39cabf03b8a07f7392dea668dd8651a5b04604c98d8c5e0f8a9fb496d6
data/bin/mondupe CHANGED
@@ -23,6 +23,9 @@ opt_parser = OptionParser.new do |opt|
23
23
  opt.separator " restore - Restore a mongo dump that exists on a host"
24
24
  opt.separator " Requires -n [name] -a [ipaddress]"
25
25
  opt.separator " Optional -t [tmpdir] -u [mongo_username] -p [mongo_password] -c [mongo_authdb]"
26
+ opt.separator " execute - Execute some java script against database"
27
+ opt.separator " Requires -n [name] -a [dns_address] -x '[javascript]'"
28
+ opt.separator " Optional -r [db_name]"
26
29
  opt.separator " expire - (coming soon) Reset the expiration days of a node"
27
30
  opt.separator " Requires ( -n [name] || -d [id] || -a [ipaddress] ) -e [expire_days]"
28
31
  opt.separator " list - (coming soon) List all mongo hosts."
@@ -86,6 +89,10 @@ opt_parser = OptionParser.new do |opt|
86
89
  $options[:mongo_auth_db] = mongo_auth_db
87
90
  end
88
91
 
92
+ opt.on("-x","--execute","Java Script to execute against DB") do |java_string|
93
+ $options[:java_string] = java_string
94
+ end
95
+
89
96
  opt.on("-h","--help","help") do
90
97
  puts opt_parser
91
98
  end
@@ -129,6 +136,7 @@ mongo_db_name = $options[:mongo_db_name] || ENV['MONDUPE_MONGO_DB_NAME'] || nil
129
136
  mongo_user = $options[:mongo_user] || ENV['MONDUPE_MONGO_USER'] || nil
130
137
  mongo_pass = $options[:mongo_pass] || ENV['MONDUPE_MONGO_PASS'] || nil
131
138
  mongo_auth_db = $options[:mongo_auth_db] || ENV['MONDUPE_MONGO_AUTH_DB'] || nil
139
+ java_string = $options[:java_string] || nil
132
140
  instance_count = 1
133
141
  chef_run_list = ENV['MONDUPE_CHEF_RUN_LIST'] || ""
134
142
  chef_environment = ENV['MONDUPE_CHEF_ENVIRONMENT'] || "default"
@@ -167,6 +175,9 @@ when "dumps3"
167
175
  when "restore"
168
176
  puts "Restoring mongo database from dump"
169
177
  Mondupe.new.restore_db(instance_ipaddress, dump_tmp_path, ssh_key, ssh_user, dump_file_name, mongo_db_name, mongo_user, mongo_pass, mongo_auth_db)
178
+ when 'execute'
179
+ puts "Executing JS against database"
180
+ Mondupe.new.execute_js(instance_ipaddress, ssh_key, ssh_user, java_string, mongo_db_name, mongo_user, mongo_pass, mongo_auth_db)
170
181
  when "terminate"
171
182
  puts "Marking instance for termination"
172
183
  Mondupe.new.terminate_instance(instance_id)
data/lib/mondupe.rb CHANGED
@@ -148,6 +148,16 @@ class Mondupe
148
148
  if $?.success? then puts "#{Time.now.to_s} - Mess cleaned up!" else abort("Error cleaning up after myself...") end
149
149
  end
150
150
 
151
+ def execute_js(instance_dns, ssh_key, ssh_user, java_command, mongo_db_name, mongo_user, mongo_pass, mongo_auth_db)
152
+ abort "You must specify a database name to execute java script against. Use -n [name] or ENV['MONGO_DB_NAME'] to set this value." if mongo_db_name.nil?
153
+ db_connect_string = "mongo #{mongo_db_name}"
154
+ db_connect_string << " -u \"#{mongo_user}\" -p \"#{mongo_pass}\"" if !mongo_user.nil? && !mongo_pass.nil?
155
+ db_connect_string << " --authenticationDatabase \"#{mongo_auth_db}\"" if !mongo_auth_db.nil?
156
+ puts "#{Time.now.to_s} - Running command against #{mongo_db_name}"
157
+ `ssh -i #{ssh_key} #{ssh_user}@#{instance_dns} "echo '#{java_command}' | #{db_connect_string}"`
158
+ if $?.success? then puts "#{Time.now.to_s} - Command execution complete" else abort("Error executing command") end
159
+ end
160
+
151
161
  def terminate(instance_id)
152
162
  puts "function not quite ready yet"
153
163
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mondupe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Hutchins