snapshot_reload 1.0.2 → 1.0.4
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/features/empty_sql_file.feature +13 -0
- data/features/save_option.feature +6 -6
- data/features/snapshot_live.feature +3 -3
- data/lib/snapshot_reload/errors.rb +1 -0
- data/lib/snapshot_reload/reload.rb +12 -0
- data/lib/snapshot_reload/version.rb +1 -1
- data/snapshot_reload-1.0.2.gem +0 -0
- metadata +4 -2
@@ -0,0 +1,13 @@
|
|
1
|
+
Feature: Make sure there is no reload if sql file is empty
|
2
|
+
In order to ensure the database doesn't get deleted accidently
|
3
|
+
As a tester
|
4
|
+
I want an error to occur when the source file is empty
|
5
|
+
|
6
|
+
Scenario: specify an empty gzipped source file
|
7
|
+
Given a file named "testdata/empty.sql.gz" exists
|
8
|
+
When I run `snapshot_reload --log-level debug --verbose --source ../../testdata/empty.sql.gz ../../testdata/config.yml`
|
9
|
+
Then the exit status should not be 0
|
10
|
+
And the output should contain "empty.sql.gz is empty!!"
|
11
|
+
|
12
|
+
|
13
|
+
|
@@ -37,12 +37,12 @@ Feature: save the existing data in the target database before reloading
|
|
37
37
|
And the output should contain "<message>"
|
38
38
|
|
39
39
|
Scenarios: test data for save option
|
40
|
-
| saveoption
|
41
|
-
| -x
|
42
|
-
| -x dumpfile
|
43
|
-
| --save
|
44
|
-
| --save dumpfile | 0
|
45
|
-
| --save dumpfile | 0
|
40
|
+
| saveoption | exit | message | dryrun |
|
41
|
+
| -x | 64 | ERROR -- : parse error: 'config' is required | -n |
|
42
|
+
| -x dumpfile | 0 | saving to file dumpfile.sql.gz | -n |
|
43
|
+
| --save | 64 | ERROR -- : parse error: 'config' is required | -n |
|
44
|
+
| --save dumpfile | 0 | saving to file dumpfile.sql.gz | -n |
|
45
|
+
| --save dumpfile | 0 | saving to file dumpfile.sql.gz | -n |
|
46
46
|
|
47
47
|
|
48
48
|
|
@@ -25,7 +25,7 @@ Feature: Live testing of application
|
|
25
25
|
And the output should match /.*Command issued: gunzip .* | mysql .* drop.*/
|
26
26
|
|
27
27
|
Scenarios: test data
|
28
|
-
| config | creds
|
29
|
-
| testdata/config.yml | testdata/my-aws-
|
30
|
-
| testdata/config.yml | testdata/my-aws-
|
28
|
+
| config | creds | bucket | folder | file | save |
|
29
|
+
| testdata/config.yml | testdata/my-personal-aws-creds | tam-test-2 | db-backups | novu-2012-12-11.sql.gz | |
|
30
|
+
| testdata/config.yml | testdata/my-personal-aws-creds | tam-test-2 | db-backups | novu-2012-12-11.sql.gz | --save /tmp/dumpfile |
|
31
31
|
|
@@ -47,6 +47,7 @@ module SnapshotReload
|
|
47
47
|
def load_db
|
48
48
|
passopt = @password.present? ? "--password=#{@password}" : ''
|
49
49
|
fetch_snapshot
|
50
|
+
check_sql_file
|
50
51
|
cmd = "gunzip < #{self.sql_file} | mysql --host=#{@host} --user=#{@username} #{passopt} #{@database}"
|
51
52
|
run_it(cmd)
|
52
53
|
end
|
@@ -58,6 +59,17 @@ module SnapshotReload
|
|
58
59
|
run_it(cmd)
|
59
60
|
end # mysqladmin_go method
|
60
61
|
|
62
|
+
# want to see if the sql file is good
|
63
|
+
def check_sql_file
|
64
|
+
unzipped_file = '/tmp/' + File.basename(self.sql_file.gsub(/\.gz$/,''))
|
65
|
+
cmd = "gunzip < #{self.sql_file} > #{unzipped_file}"
|
66
|
+
run_it(cmd)
|
67
|
+
unless File.size?(unzipped_file) or @dry_run
|
68
|
+
fatal("#{self.sql_file} is empty!!")
|
69
|
+
exit(EEMPTYSQL)
|
70
|
+
end
|
71
|
+
# File.unlink(unzipped_file)
|
72
|
+
end
|
61
73
|
|
62
74
|
def run_it(cmd)
|
63
75
|
info("Dry-run, no commands will be executed.") if @dry_run and @verbose
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
|
13
13
|
module SnapshotReload
|
14
|
-
VERSION = "1.0.
|
14
|
+
VERSION = "1.0.4"
|
15
15
|
SUMMARY = %q{Redeploy the obfuscated data from production to other servers}
|
16
16
|
DESCRIPTION = %q{Take the obfuscated production data from it's nightly backup and place it into a working database. This script is run nightly to put obfuscated data into the Q* test server environments.}
|
17
17
|
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snapshot_reload
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdoc
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- README.rdoc
|
128
128
|
- Rakefile
|
129
129
|
- bin/snapshot_reload
|
130
|
+
- features/empty_sql_file.feature
|
130
131
|
- features/save_option.feature
|
131
132
|
- features/snapshot_live.feature
|
132
133
|
- features/snapshot_reload.feature
|
@@ -172,6 +173,7 @@ signing_key:
|
|
172
173
|
specification_version: 3
|
173
174
|
summary: Redeploy the obfuscated data from production to other servers
|
174
175
|
test_files:
|
176
|
+
- features/empty_sql_file.feature
|
175
177
|
- features/save_option.feature
|
176
178
|
- features/snapshot_live.feature
|
177
179
|
- features/snapshot_reload.feature
|