ey_cloud_server 1.4.28 → 1.4.29

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.
data/spec/helpers.rb CHANGED
@@ -100,50 +100,25 @@ module Helpers
100
100
 
101
101
  def drop_postgresql_database(db_key)
102
102
  db_name = created_postgresql_dbs[db_key]
103
- # system("PGPASSWORD='#{postgresql_password}' dropdb -U #{postgresql_user} -h #{postgresql_host} #{db_name}")
104
- command=%Q{ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/#{postgresql_user}/.ssh/internal root@#{postgresql_host} "dropdb -U postgres -h localhost #{db_name}"}
103
+ command = %Q{ PGPASSWORD='#{postgresql_password}' dropdb -U #{postgresql_user} -h #{postgresql_host} #{db_name} }
105
104
  system(command)
106
105
  end
107
106
 
108
107
  def check_postgresql_database(db_name)
109
- command=%Q{ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/#{postgresql_user}/.ssh/internal root@#{postgresql_host} "psql -l -U #{postgresql_user} -h localhost | grep '#{db_name}'"}
108
+ command = %Q{ PGPASSWORD='#{postgresql_password}' psql -l -U #{postgresql_user} -h #{postgresql_host} | grep '#{db_name}' }
110
109
  system(command) || raise("Could not find db: #{db_name} with command:\n #{command}")
111
110
  db_name
112
111
  end
113
112
 
114
113
  def create_postgresql_database(db_key, region = 'us-east-1')
115
- db_name = generate_database_name('mongo')
114
+ db_name = generate_database_name('postgresql')
116
115
  created_postgresql_dbs[db_key] = db_name
117
116
  drop_postgresql_database(db_key)
118
- # ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/$USER/.ssh/internal root@$DB_HOST "createdb -U postgres -h localhost -O $USER testdbreallytestingweee8"
119
- # system("PGPASSWORD='#{postgresql_password}' createdb -U #{postgresql_user} -h #{postgresql_host} #{db_name}") || raise("Could not create db: #{db_name}")
120
- command=%Q{ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/#{postgresql_user}/.ssh/internal root@#{postgresql_host} "createdb -U postgres -h localhost -O #{postgresql_user} #{db_name}"}
117
+ command = %Q{ PGPASSWORD='#{postgresql_password}' createdb -U #{postgresql_user} -h #{postgresql_host} #{db_name} }
121
118
  system(command) || raise("Could not create db: #{db_name} with command:\n #{command}")
122
119
  write_database_config('postgresql', postgresql_user, postgresql_password, postgresql_host, created_postgresql_dbs.values, region)
123
120
  db_name
124
121
  end
125
-
126
- def drop_mongodb_database(db_key)
127
- db_name = created_mongodb_dbs[db_key]
128
- command=%Q{ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/#{mongodb_user}/.ssh/internal root@#{mongodb_host} "mongo --host localhost #{db_name} --quiet --eval 'printjson(db.dropDatabase());'"}
129
- system(command)
130
- end
131
-
132
- def check_mongodb_database(db_name)
133
- command=%Q{ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/#{mongodb_user}/.ssh/internal root@#{mongodb_host} "mongo --host localhost --quiet --eval "for each(var db in db.runCommand('listDatabases').databases) if(db.sizeOnDisk > 1) print(db.name);" admin | grep '#{db_name}'"}
134
- system(command) || raise("Could not find db: #{db_name} with command:\n #{command}")
135
- db_name
136
- end
137
-
138
- def create_mongodb_database(db_key, region = 'us-east-1')
139
- db_name = generate_database_name('test')
140
- drop_mongodb_database(db_key)
141
- command=%Q{ssh -F /dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i /home/#{mongodb_user}/.ssh/internal root@#{mongodb_host} "mongo --host localhost #{db_name} --quiet --eval 'db.foo.save({ name : "derp"});'"}
142
- system(command) || raise("Could not create db: #{db_name} with command:\n #{command}")
143
- write_database_config('mongodb', mongodb_user, mongodb_password, mongodb_host, created_mongodb_dbs.values, region)
144
- db_name
145
- end
146
-
147
122
 
148
123
  def write_database_config(type, root_user, root_password, host, databases, region)
149
124
  @database_config = {
@@ -170,7 +145,7 @@ module Helpers
170
145
  end
171
146
 
172
147
  def run_sql(command, database)
173
- system("echo '#{command}' |mysql -u#{mysql_user} -h#{mysql_host} #{mysql_password_option} -D#{database}")
148
+ system("mysql -u#{mysql_user} -h#{mysql_host} #{mysql_password_option} -D#{database} -e '#{command}'")
174
149
  end
175
150
 
176
151
  def run_sql_pipe(io, database)
@@ -189,10 +164,6 @@ module Helpers
189
164
  system("PGPASSWORD='#{postgresql_password}' psql -c '#{command}' -h #{postgresql_host} -U #{postgresql_user} #{database}")
190
165
  end
191
166
 
192
- def run_mongocmd(command, database)
193
- system("mongo #{database} --quiet --eval \"#{command}\" --quiet")
194
- end
195
-
196
167
  def tmp_dir
197
168
  if spec_config['tmp_dir'].blank?
198
169
  File.dirname(__FILE__) + "/tmp/"
@@ -209,10 +180,6 @@ module Helpers
209
180
  spec_config['postgresql_user'] || raise("No postgresql user provided")
210
181
  end
211
182
 
212
- def mongodb_user
213
- spec_config['mongodb_user'] || raise("No mongodb user provided")
214
- end
215
-
216
183
  def mysql_password
217
184
  spec_config['mysql_password']
218
185
  end
@@ -221,20 +188,12 @@ module Helpers
221
188
  spec_config['postgresql_password']
222
189
  end
223
190
 
224
- def mongodb_password #<- is this really needed? Supported mongo will run in trusted mode
225
- spec_config['mongodb_password']
226
- end
227
-
228
191
  def mysql_host
229
- spec_config['mysql_host']
192
+ spec_config['mysql_host'] || 'localhost'
230
193
  end
231
194
 
232
195
  def postgresql_host
233
- spec_config['postgresql_host']
234
- end
235
-
236
- def mongodb_host
237
- spec_config['mongodb_host']
196
+ spec_config['postgresql_host'] || 'localhost'
238
197
  end
239
198
 
240
199
  def created_mysql_dbs
@@ -245,10 +204,6 @@ module Helpers
245
204
  @created_postgresql_dbs ||= {}
246
205
  end
247
206
 
248
- def created_mongodb_dbs
249
- @created_mongodb_dbs ||= {}
250
- end
251
-
252
207
  def spec_config
253
208
  Helpers.spec_config
254
209
  end
data/spec/spec_helper.rb CHANGED
@@ -7,8 +7,8 @@ require 'randexp'
7
7
  require 'fog'
8
8
 
9
9
  # Made tests work with actual storage; better tests. - rpowell Fri Aug 5 17:53:17 PDT 2011
10
- #
11
- # Fog.mock!
10
+ #
11
+ Fog.mock!
12
12
 
13
13
  require File.dirname(__FILE__) + '/fakefs_hax'
14
14
  require File.dirname(__FILE__) + '/helpers'
@@ -18,7 +18,7 @@ Helpers.load_spec_config
18
18
  FakeWeb.allow_net_connect = false # if it's not here, it doesn't exist
19
19
  Randexp::Dictionary.words
20
20
 
21
- Spec::Runner.configure do |config|
21
+ RSpec.configure do |config|
22
22
  config.include(Helpers)
23
23
 
24
24
  config.before(:each) do
data/tmp/.gitignore ADDED
File without changes
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ey_cloud_server
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 4
9
- - 28
10
- version: 1.4.28
9
+ - 29
10
+ version: 1.4.29
11
11
  platform: ruby
12
12
  authors:
13
- - Engine Yard
13
+ - EngineYard
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-12-22 00:00:00 Z
18
+ date: 2011-12-29 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: json
@@ -23,124 +23,52 @@ dependencies:
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
- - - ">="
26
+ - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 3
28
+ hash: 7
29
29
  segments:
30
- - 0
31
- version: "0"
30
+ - 1
31
+ - 6
32
+ - 4
33
+ version: 1.6.4
32
34
  type: :runtime
33
35
  version_requirements: *id001
34
36
  - !ruby/object:Gem::Dependency
35
- name: right_http_connection
37
+ name: open4
36
38
  prerelease: false
37
39
  requirement: &id002 !ruby/object:Gem::Requirement
38
40
  none: false
39
41
  requirements:
40
- - - "="
42
+ - - ~>
41
43
  - !ruby/object:Gem::Version
42
- hash: 23
44
+ hash: 27
43
45
  segments:
44
46
  - 1
45
- - 2
46
- - 4
47
- version: 1.2.4
47
+ - 3
48
+ - 0
49
+ version: 1.3.0
48
50
  type: :runtime
49
51
  version_requirements: *id002
50
52
  - !ruby/object:Gem::Dependency
51
- name: right_aws
53
+ name: fog
52
54
  prerelease: false
53
55
  requirement: &id003 !ruby/object:Gem::Requirement
54
56
  none: false
55
57
  requirements:
56
- - - "="
58
+ - - ~>
57
59
  - !ruby/object:Gem::Version
58
- hash: 15
60
+ hash: 23
59
61
  segments:
62
+ - 1
63
+ - 1
60
64
  - 2
61
- - 0
62
- - 0
63
- version: 2.0.0
65
+ version: 1.1.2
64
66
  type: :runtime
65
67
  version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: open4
68
- prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
- requirements:
72
- - - "="
73
- - !ruby/object:Gem::Version
74
- hash: 55
75
- segments:
76
- - 0
77
- - 9
78
- - 6
79
- version: 0.9.6
80
- type: :runtime
81
- version_requirements: *id004
82
- - !ruby/object:Gem::Dependency
83
- name: aws-s3
84
- prerelease: false
85
- requirement: &id005 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- hash: 3
91
- segments:
92
- - 0
93
- version: "0"
94
- type: :runtime
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: fog
98
- prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
100
- none: false
101
- requirements:
102
- - - "="
103
- - !ruby/object:Gem::Version
104
- hash: 7
105
- segments:
106
- - 0
107
- - 7
108
- - 2
109
- version: 0.7.2
110
- type: :runtime
111
- version_requirements: *id006
112
- - !ruby/object:Gem::Dependency
113
- name: rest-client
114
- prerelease: false
115
- requirement: &id007 !ruby/object:Gem::Requirement
116
- none: false
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- hash: 3
121
- segments:
122
- - 0
123
- version: "0"
124
- type: :runtime
125
- version_requirements: *id007
126
- - !ruby/object:Gem::Dependency
127
- name: mysql
128
- prerelease: false
129
- requirement: &id008 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- hash: 3
135
- segments:
136
- - 0
137
- version: "0"
138
- type: :runtime
139
- version_requirements: *id008
140
68
  - !ruby/object:Gem::Dependency
141
69
  name: ey_enzyme
142
70
  prerelease: false
143
- requirement: &id009 !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
144
72
  none: false
145
73
  requirements:
146
74
  - - ">="
@@ -150,162 +78,26 @@ dependencies:
150
78
  - 0
151
79
  version: "0"
152
80
  type: :runtime
153
- version_requirements: *id009
81
+ version_requirements: *id004
154
82
  - !ruby/object:Gem::Dependency
155
83
  name: ey_instance_api_client
156
84
  prerelease: false
157
- requirement: &id010 !ruby/object:Gem::Requirement
158
- none: false
159
- requirements:
160
- - - "="
161
- - !ruby/object:Gem::Version
162
- hash: 25
163
- segments:
164
- - 0
165
- - 1
166
- - 1
167
- version: 0.1.1
168
- type: :runtime
169
- version_requirements: *id010
170
- - !ruby/object:Gem::Dependency
171
- name: rspec
172
- prerelease: false
173
- requirement: &id011 !ruby/object:Gem::Requirement
85
+ requirement: &id005 !ruby/object:Gem::Requirement
174
86
  none: false
175
87
  requirements:
176
88
  - - ~>
177
89
  - !ruby/object:Gem::Version
178
- hash: 13
179
- segments:
180
- - 1
181
- - 1
182
- version: "1.1"
183
- type: :development
184
- version_requirements: *id011
185
- - !ruby/object:Gem::Dependency
186
- name: randexp
187
- prerelease: false
188
- requirement: &id012 !ruby/object:Gem::Requirement
189
- none: false
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- hash: 3
194
- segments:
195
- - 0
196
- version: "0"
197
- type: :development
198
- version_requirements: *id012
199
- - !ruby/object:Gem::Dependency
200
- name: cucumber
201
- prerelease: false
202
- requirement: &id013 !ruby/object:Gem::Requirement
203
- none: false
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- hash: 3
90
+ hash: 17
208
91
  segments:
209
92
  - 0
210
- version: "0"
211
- type: :development
212
- version_requirements: *id013
213
- - !ruby/object:Gem::Dependency
214
- name: rcov
215
- prerelease: false
216
- requirement: &id014 !ruby/object:Gem::Requirement
217
- none: false
218
- requirements:
219
- - - "="
220
- - !ruby/object:Gem::Version
221
- hash: -1842207251
222
- segments:
223
- - 0
224
- - 8
225
- - 6
226
- - ninjas
227
- version: 0.8.6.ninjas
228
- type: :development
229
- version_requirements: *id014
230
- - !ruby/object:Gem::Dependency
231
- name: fakeweb
232
- prerelease: false
233
- requirement: &id015 !ruby/object:Gem::Requirement
234
- none: false
235
- requirements:
236
- - - "="
237
- - !ruby/object:Gem::Version
238
- hash: -1842207315
239
- segments:
240
93
  - 1
241
- - 2
242
- - 6
243
- - ninjas
244
- version: 1.2.6.ninjas
245
- type: :development
246
- version_requirements: *id015
247
- - !ruby/object:Gem::Dependency
248
- name: fakefs
249
- prerelease: false
250
- requirement: &id016 !ruby/object:Gem::Requirement
251
- none: false
252
- requirements:
253
- - - "="
254
- - !ruby/object:Gem::Version
255
- hash: -1842207311
256
- segments:
257
- - 0
258
- - 0
259
- - 1
260
- - ninjas
261
- version: 0.0.1.ninjas
262
- type: :development
263
- version_requirements: *id016
264
- - !ruby/object:Gem::Dependency
265
- name: dbi
266
- prerelease: false
267
- requirement: &id017 !ruby/object:Gem::Requirement
268
- none: false
269
- requirements:
270
- - - ">="
271
- - !ruby/object:Gem::Version
272
- hash: 3
273
- segments:
274
- - 0
275
- version: "0"
276
- type: :development
277
- version_requirements: *id017
278
- - !ruby/object:Gem::Dependency
279
- name: dbd-mysql
280
- prerelease: false
281
- requirement: &id018 !ruby/object:Gem::Requirement
282
- none: false
283
- requirements:
284
- - - ">="
285
- - !ruby/object:Gem::Version
286
- hash: 3
287
- segments:
288
- - 0
289
- version: "0"
290
- type: :development
291
- version_requirements: *id018
292
- - !ruby/object:Gem::Dependency
293
- name: ruby-debug
294
- prerelease: false
295
- requirement: &id019 !ruby/object:Gem::Requirement
296
- none: false
297
- requirements:
298
- - - ">="
299
- - !ruby/object:Gem::Version
300
- hash: 3
301
- segments:
302
- - 0
303
- version: "0"
304
- type: :development
305
- version_requirements: *id019
306
- description: Server side components for Engine Yard's cloud
94
+ - 5
95
+ version: 0.1.5
96
+ type: :runtime
97
+ version_requirements: *id005
98
+ description: ""
307
99
  email:
308
- - gems@engineyard.com
100
+ - engineering@engineyard.com
309
101
  executables:
310
102
  - binary_log_purge
311
103
  - clear_binlogs_from_slave
@@ -318,12 +110,35 @@ extensions: []
318
110
  extra_rdoc_files: []
319
111
 
320
112
  files:
113
+ - .gitignore
114
+ - .rvmrc
115
+ - Gemfile
116
+ - Gemfile.lock
117
+ - LICENSE
118
+ - README.rdoc
119
+ - Rakefile
120
+ - TODO
121
+ - bin/binary_log_purge
122
+ - bin/clear_binlogs_from_slave
123
+ - bin/ey-agent
124
+ - bin/ey-snapshots
125
+ - bin/eybackup
126
+ - bin/mysql_start
127
+ - ey_cloud_server.gemspec
128
+ - features/downloading_a_mysql_backup.feature
129
+ - features/making_a_postgresql_backup.feature
130
+ - features/restoring_postgres_backup.feature
131
+ - features/step_definitions/backups.rb
132
+ - features/step_definitions/commands.rb
133
+ - features/step_definitions/mysql.rb
134
+ - features/step_definitions/postgresql.rb
135
+ - features/support/env.rb
136
+ - lib/ey-flex.rb
321
137
  - lib/ey-flex/big-brother.rb
322
138
  - lib/ey-flex/bucket_minder.rb
323
- - lib/ey-flex/ec2.rb
324
139
  - lib/ey-flex/ey-api.rb
325
140
  - lib/ey-flex/snapshot_minder.rb
326
- - lib/ey-flex.rb
141
+ - lib/ey_backup.rb
327
142
  - lib/ey_backup/backend.rb
328
143
  - lib/ey_backup/backup_set.rb
329
144
  - lib/ey_backup/base.rb
@@ -331,7 +146,6 @@ files:
331
146
  - lib/ey_backup/database.rb
332
147
  - lib/ey_backup/dumper.rb
333
148
  - lib/ey_backup/engine.rb
334
- - lib/ey_backup/engines/mongodb_engine.rb
335
149
  - lib/ey_backup/engines/mysql_engine.rb
336
150
  - lib/ey_backup/engines/postgresql_engine.rb
337
151
  - lib/ey_backup/loader.rb
@@ -340,10 +154,10 @@ files:
340
154
  - lib/ey_backup/processors/gzipper.rb
341
155
  - lib/ey_backup/processors/splitter.rb
342
156
  - lib/ey_backup/spawner.rb
343
- - lib/ey_backup.rb
157
+ - lib/ey_cloud_server.rb
344
158
  - lib/ey_cloud_server/mysql_start.rb
345
159
  - lib/ey_cloud_server/version.rb
346
- - lib/ey_cloud_server.rb
160
+ - script/ci
347
161
  - spec/big-brother_spec.rb
348
162
  - spec/bucket_minder_spec.rb
349
163
  - spec/config-example.yml
@@ -351,7 +165,6 @@ files:
351
165
  - spec/ey_backup/backend_spec.rb
352
166
  - spec/ey_backup/backup_spec.rb
353
167
  - spec/ey_backup/cli_spec.rb
354
- - spec/ey_backup/mongo_backups_spec.rb
355
168
  - spec/ey_backup/mysql_backups_spec.rb
356
169
  - spec/ey_backup/postgres_backups_spec.rb
357
170
  - spec/ey_backup/spec_helper.rb
@@ -361,13 +174,8 @@ files:
361
174
  - spec/helpers.rb
362
175
  - spec/snapshot_minder_spec.rb
363
176
  - spec/spec_helper.rb
364
- - bin/binary_log_purge
365
- - bin/clear_binlogs_from_slave
366
- - bin/ey-agent
367
- - bin/ey-snapshots
368
- - bin/eybackup
369
- - bin/mysql_start
370
- homepage: http://github.com/engineyard/ey_cloud_server
177
+ - tmp/.gitignore
178
+ homepage: ""
371
179
  licenses: []
372
180
 
373
181
  post_install_message:
@@ -396,11 +204,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
396
204
  requirements: []
397
205
 
398
206
  rubyforge_project:
399
- rubygems_version: 1.8.6
207
+ rubygems_version: 1.8.10
400
208
  signing_key:
401
209
  specification_version: 3
402
210
  summary: Server side components for Engine Yard's cloud
403
211
  test_files:
212
+ - features/downloading_a_mysql_backup.feature
213
+ - features/making_a_postgresql_backup.feature
214
+ - features/restoring_postgres_backup.feature
215
+ - features/step_definitions/backups.rb
216
+ - features/step_definitions/commands.rb
217
+ - features/step_definitions/mysql.rb
218
+ - features/step_definitions/postgresql.rb
219
+ - features/support/env.rb
404
220
  - spec/big-brother_spec.rb
405
221
  - spec/bucket_minder_spec.rb
406
222
  - spec/config-example.yml
@@ -408,7 +224,6 @@ test_files:
408
224
  - spec/ey_backup/backend_spec.rb
409
225
  - spec/ey_backup/backup_spec.rb
410
226
  - spec/ey_backup/cli_spec.rb
411
- - spec/ey_backup/mongo_backups_spec.rb
412
227
  - spec/ey_backup/mysql_backups_spec.rb
413
228
  - spec/ey_backup/postgres_backups_spec.rb
414
229
  - spec/ey_backup/spec_helper.rb
data/lib/ey-flex/ec2.rb DELETED
@@ -1,17 +0,0 @@
1
- module EY
2
- class EC2
3
- def initialize(opts = {})
4
- @ec2 = RightAws::Ec2.new(opts[:aws_secret_id], opts[:aws_secret_key], :logger => Logger.new("/dev/null"))
5
- end
6
-
7
- def method_missing(method, *a, &b)
8
- @ec2.send(method, *a, &b)
9
- rescue RightAws::AwsError => e
10
- retries ||= 10
11
- retries -= 1
12
- raise e if retries == 0
13
- sleep 30
14
- retry
15
- end
16
- end
17
- end
@@ -1,64 +0,0 @@
1
- module EY
2
- module Backup
3
- class Mongodb < Engine
4
- register 'mongodb'
5
-
6
- def dump(database_name, basename)
7
- # Mongo dumps in directories. Compressing
8
- file = basename
9
-
10
- command = "mongodump --host #{host} -o #{file} --db #{database_name}; tar -cz #{file}"
11
-
12
- if gpg?
13
- command << " | " << GPGEncryptor.command_for(key_id)
14
- file << GPGEncryptor.extension
15
- end
16
-
17
- command << " > #{file}"
18
-
19
- run(command)
20
-
21
- file
22
- end
23
-
24
- def load(database_name, file)
25
- if database_exists?(database_name)
26
- cycle_database(database_name)
27
- else
28
- create_database(database_name)
29
- end
30
-
31
- command = "cat #{file}"
32
-
33
- if gpg?
34
- raise "Cannot load a GPG backup"
35
- end
36
-
37
- command << " | mongorestore --host #{host} --db #{database_name}"
38
-
39
- run(command)
40
- end
41
-
42
- def database_exists?(database_name)
43
- runs?("mongo --host #{host} --quiet --eval \"for each(var db in db.runCommand('listDatabases').databases) if(db.sizeOnDisk > 1) print(db.name);\" admin | grep '#{database_name}'")
44
- end
45
-
46
- def drop_database(database_name)
47
- runs?("mongo --host #{host} #{database_name} --quiet --eval 'printjson(db.dropDatabase());'")
48
- end
49
-
50
- def create_database(database_name)
51
- runs?("mongo --host #{host} #{database_name} --quiet --eval 'db.createCollection('ey_backup');'")
52
- end
53
-
54
- def cycle_database(database_name)
55
- drop_database(database_name)
56
- create_database(database_name)
57
- end
58
-
59
- def suffix
60
- /\.(gz)$/
61
- end
62
- end
63
- end
64
- end