backup 3.0.23 → 3.0.24

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.
Files changed (197) hide show
  1. data/Gemfile.lock +42 -45
  2. data/Guardfile +7 -4
  3. data/README.md +10 -7
  4. data/backup.gemspec +2 -2
  5. data/lib/backup.rb +27 -97
  6. data/lib/backup/archive.rb +14 -6
  7. data/lib/backup/cli/helpers.rb +52 -49
  8. data/lib/backup/cli/utility.rb +9 -1
  9. data/lib/backup/compressor/base.rb +10 -4
  10. data/lib/backup/compressor/bzip2.rb +22 -26
  11. data/lib/backup/compressor/custom.rb +53 -0
  12. data/lib/backup/compressor/gzip.rb +22 -23
  13. data/lib/backup/compressor/lzma.rb +15 -13
  14. data/lib/backup/compressor/pbzip2.rb +20 -17
  15. data/lib/backup/config.rb +6 -3
  16. data/lib/backup/configuration.rb +33 -0
  17. data/lib/backup/configuration/helpers.rb +114 -28
  18. data/lib/backup/configuration/store.rb +24 -0
  19. data/lib/backup/database/base.rb +0 -6
  20. data/lib/backup/database/mongodb.rb +27 -11
  21. data/lib/backup/database/mysql.rb +19 -14
  22. data/lib/backup/database/postgresql.rb +16 -11
  23. data/lib/backup/database/redis.rb +7 -11
  24. data/lib/backup/database/riak.rb +3 -6
  25. data/lib/backup/dependency.rb +5 -11
  26. data/lib/backup/model.rb +14 -5
  27. data/lib/backup/notifier/campfire.rb +3 -16
  28. data/lib/backup/notifier/hipchat.rb +1 -7
  29. data/lib/backup/notifier/mail.rb +1 -1
  30. data/lib/backup/packager.rb +29 -19
  31. data/lib/backup/pipeline.rb +110 -0
  32. data/lib/backup/storage/dropbox.rb +4 -7
  33. data/lib/backup/syncer/base.rb +8 -4
  34. data/lib/backup/syncer/cloud/base.rb +247 -0
  35. data/lib/backup/syncer/cloud/cloud_files.rb +78 -0
  36. data/lib/backup/syncer/cloud/s3.rb +68 -0
  37. data/lib/backup/syncer/rsync/base.rb +1 -4
  38. data/lib/backup/syncer/rsync/local.rb +9 -5
  39. data/lib/backup/syncer/rsync/pull.rb +1 -1
  40. data/lib/backup/syncer/rsync/push.rb +10 -5
  41. data/lib/backup/version.rb +1 -1
  42. data/spec-live/.gitignore +6 -0
  43. data/spec-live/README +7 -0
  44. data/spec-live/backups/config.rb +153 -0
  45. data/spec-live/backups/config.yml.template +43 -0
  46. data/spec-live/compressor/custom_spec.rb +30 -0
  47. data/spec-live/compressor/gzip_spec.rb +30 -0
  48. data/spec-live/notifier/mail_spec.rb +85 -0
  49. data/spec-live/spec_helper.rb +85 -0
  50. data/spec-live/storage/dropbox_spec.rb +151 -0
  51. data/spec-live/storage/local_spec.rb +83 -0
  52. data/spec-live/storage/scp_spec.rb +193 -0
  53. data/spec-live/syncer/cloud/s3_spec.rb +124 -0
  54. data/spec/archive_spec.rb +86 -31
  55. data/spec/cleaner_spec.rb +8 -0
  56. data/spec/cli/helpers_spec.rb +200 -75
  57. data/spec/cli/utility_spec.rb +11 -3
  58. data/spec/compressor/base_spec.rb +31 -10
  59. data/spec/compressor/bzip2_spec.rb +212 -57
  60. data/spec/compressor/custom_spec.rb +106 -0
  61. data/spec/compressor/gzip_spec.rb +212 -57
  62. data/spec/compressor/lzma_spec.rb +75 -35
  63. data/spec/compressor/pbzip2_spec.rb +93 -52
  64. data/spec/configuration/helpers_spec.rb +406 -0
  65. data/spec/configuration/store_spec.rb +39 -0
  66. data/spec/configuration_spec.rb +62 -0
  67. data/spec/database/base_spec.rb +19 -10
  68. data/spec/database/mongodb_spec.rb +195 -70
  69. data/spec/database/mysql_spec.rb +183 -64
  70. data/spec/database/postgresql_spec.rb +167 -53
  71. data/spec/database/redis_spec.rb +121 -46
  72. data/spec/database/riak_spec.rb +96 -27
  73. data/spec/dependency_spec.rb +2 -0
  74. data/spec/encryptor/base_spec.rb +10 -0
  75. data/spec/encryptor/gpg_spec.rb +29 -13
  76. data/spec/encryptor/open_ssl_spec.rb +40 -21
  77. data/spec/logger_spec.rb +4 -0
  78. data/spec/model_spec.rb +19 -2
  79. data/spec/notifier/base_spec.rb +32 -17
  80. data/spec/notifier/campfire_spec.rb +63 -45
  81. data/spec/notifier/hipchat_spec.rb +79 -56
  82. data/spec/notifier/mail_spec.rb +82 -46
  83. data/spec/notifier/prowl_spec.rb +53 -32
  84. data/spec/notifier/twitter_spec.rb +62 -41
  85. data/spec/packager_spec.rb +95 -36
  86. data/spec/pipeline_spec.rb +259 -0
  87. data/spec/spec_helper.rb +6 -5
  88. data/spec/storage/base_spec.rb +61 -41
  89. data/spec/storage/cloudfiles_spec.rb +69 -45
  90. data/spec/storage/dropbox_spec.rb +158 -36
  91. data/spec/storage/ftp_spec.rb +69 -45
  92. data/spec/storage/local_spec.rb +47 -23
  93. data/spec/storage/ninefold_spec.rb +55 -31
  94. data/spec/storage/rsync_spec.rb +67 -50
  95. data/spec/storage/s3_spec.rb +65 -41
  96. data/spec/storage/scp_spec.rb +65 -41
  97. data/spec/storage/sftp_spec.rb +65 -41
  98. data/spec/syncer/base_spec.rb +91 -4
  99. data/spec/syncer/cloud/base_spec.rb +511 -0
  100. data/spec/syncer/cloud/cloud_files_spec.rb +181 -0
  101. data/spec/syncer/cloud/s3_spec.rb +174 -0
  102. data/spec/syncer/rsync/base_spec.rb +46 -66
  103. data/spec/syncer/rsync/local_spec.rb +55 -26
  104. data/spec/syncer/rsync/pull_spec.rb +15 -4
  105. data/spec/syncer/rsync/push_spec.rb +59 -52
  106. data/templates/cli/utility/compressor/bzip2 +1 -4
  107. data/templates/cli/utility/compressor/custom +11 -0
  108. data/templates/cli/utility/compressor/gzip +1 -4
  109. data/templates/cli/utility/compressor/lzma +3 -0
  110. data/templates/cli/utility/compressor/pbzip2 +3 -0
  111. data/templates/cli/utility/database/mysql +4 -1
  112. data/templates/cli/utility/syncer/cloud_files +17 -19
  113. data/templates/cli/utility/syncer/s3 +18 -20
  114. metadata +38 -92
  115. data/lib/backup/configuration/base.rb +0 -15
  116. data/lib/backup/configuration/compressor/base.rb +0 -9
  117. data/lib/backup/configuration/compressor/bzip2.rb +0 -23
  118. data/lib/backup/configuration/compressor/gzip.rb +0 -23
  119. data/lib/backup/configuration/compressor/lzma.rb +0 -23
  120. data/lib/backup/configuration/compressor/pbzip2.rb +0 -28
  121. data/lib/backup/configuration/database/base.rb +0 -19
  122. data/lib/backup/configuration/database/mongodb.rb +0 -49
  123. data/lib/backup/configuration/database/mysql.rb +0 -42
  124. data/lib/backup/configuration/database/postgresql.rb +0 -41
  125. data/lib/backup/configuration/database/redis.rb +0 -39
  126. data/lib/backup/configuration/database/riak.rb +0 -29
  127. data/lib/backup/configuration/encryptor/base.rb +0 -9
  128. data/lib/backup/configuration/encryptor/gpg.rb +0 -17
  129. data/lib/backup/configuration/encryptor/open_ssl.rb +0 -32
  130. data/lib/backup/configuration/notifier/base.rb +0 -28
  131. data/lib/backup/configuration/notifier/campfire.rb +0 -25
  132. data/lib/backup/configuration/notifier/hipchat.rb +0 -41
  133. data/lib/backup/configuration/notifier/mail.rb +0 -112
  134. data/lib/backup/configuration/notifier/presently.rb +0 -25
  135. data/lib/backup/configuration/notifier/prowl.rb +0 -23
  136. data/lib/backup/configuration/notifier/twitter.rb +0 -21
  137. data/lib/backup/configuration/storage/base.rb +0 -18
  138. data/lib/backup/configuration/storage/cloudfiles.rb +0 -25
  139. data/lib/backup/configuration/storage/dropbox.rb +0 -58
  140. data/lib/backup/configuration/storage/ftp.rb +0 -29
  141. data/lib/backup/configuration/storage/local.rb +0 -17
  142. data/lib/backup/configuration/storage/ninefold.rb +0 -20
  143. data/lib/backup/configuration/storage/rsync.rb +0 -29
  144. data/lib/backup/configuration/storage/s3.rb +0 -25
  145. data/lib/backup/configuration/storage/scp.rb +0 -25
  146. data/lib/backup/configuration/storage/sftp.rb +0 -25
  147. data/lib/backup/configuration/syncer/base.rb +0 -10
  148. data/lib/backup/configuration/syncer/cloud.rb +0 -23
  149. data/lib/backup/configuration/syncer/cloud_files.rb +0 -30
  150. data/lib/backup/configuration/syncer/rsync/base.rb +0 -28
  151. data/lib/backup/configuration/syncer/rsync/local.rb +0 -11
  152. data/lib/backup/configuration/syncer/rsync/pull.rb +0 -11
  153. data/lib/backup/configuration/syncer/rsync/push.rb +0 -31
  154. data/lib/backup/configuration/syncer/s3.rb +0 -23
  155. data/lib/backup/notifier/presently.rb +0 -88
  156. data/lib/backup/syncer/cloud.rb +0 -187
  157. data/lib/backup/syncer/cloud_files.rb +0 -56
  158. data/lib/backup/syncer/s3.rb +0 -47
  159. data/spec/configuration/base_spec.rb +0 -35
  160. data/spec/configuration/compressor/bzip2_spec.rb +0 -29
  161. data/spec/configuration/compressor/gzip_spec.rb +0 -29
  162. data/spec/configuration/compressor/lzma_spec.rb +0 -29
  163. data/spec/configuration/compressor/pbzip2_spec.rb +0 -32
  164. data/spec/configuration/database/base_spec.rb +0 -17
  165. data/spec/configuration/database/mongodb_spec.rb +0 -56
  166. data/spec/configuration/database/mysql_spec.rb +0 -53
  167. data/spec/configuration/database/postgresql_spec.rb +0 -53
  168. data/spec/configuration/database/redis_spec.rb +0 -50
  169. data/spec/configuration/database/riak_spec.rb +0 -35
  170. data/spec/configuration/encryptor/gpg_spec.rb +0 -26
  171. data/spec/configuration/encryptor/open_ssl_spec.rb +0 -35
  172. data/spec/configuration/notifier/base_spec.rb +0 -32
  173. data/spec/configuration/notifier/campfire_spec.rb +0 -32
  174. data/spec/configuration/notifier/hipchat_spec.rb +0 -44
  175. data/spec/configuration/notifier/mail_spec.rb +0 -71
  176. data/spec/configuration/notifier/presently_spec.rb +0 -35
  177. data/spec/configuration/notifier/prowl_spec.rb +0 -29
  178. data/spec/configuration/notifier/twitter_spec.rb +0 -35
  179. data/spec/configuration/storage/cloudfiles_spec.rb +0 -41
  180. data/spec/configuration/storage/dropbox_spec.rb +0 -38
  181. data/spec/configuration/storage/ftp_spec.rb +0 -44
  182. data/spec/configuration/storage/local_spec.rb +0 -29
  183. data/spec/configuration/storage/ninefold_spec.rb +0 -32
  184. data/spec/configuration/storage/rsync_spec.rb +0 -41
  185. data/spec/configuration/storage/s3_spec.rb +0 -38
  186. data/spec/configuration/storage/scp_spec.rb +0 -41
  187. data/spec/configuration/storage/sftp_spec.rb +0 -41
  188. data/spec/configuration/syncer/cloud_files_spec.rb +0 -44
  189. data/spec/configuration/syncer/rsync/base_spec.rb +0 -33
  190. data/spec/configuration/syncer/rsync/local_spec.rb +0 -10
  191. data/spec/configuration/syncer/rsync/pull_spec.rb +0 -10
  192. data/spec/configuration/syncer/rsync/push_spec.rb +0 -43
  193. data/spec/configuration/syncer/s3_spec.rb +0 -38
  194. data/spec/notifier/presently_spec.rb +0 -181
  195. data/spec/syncer/cloud_files_spec.rb +0 -192
  196. data/spec/syncer/s3_spec.rb +0 -192
  197. data/templates/cli/utility/notifier/presently +0 -13
@@ -1,192 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path('../../spec_helper.rb', __FILE__)
3
-
4
- class Parallel; end
5
-
6
- describe Backup::Syncer::CloudFiles do
7
- describe '#perform!' do
8
- let(:syncer) { Backup::Syncer::CloudFiles.new }
9
- let(:connection) { stub('connection',
10
- :directories => stub('directories', :get => container)) }
11
- let(:container) { stub('container', :files => files) }
12
- let(:files) { [] }
13
- let(:content) { stub('content') }
14
-
15
- before :each do
16
- Fog::Storage.stubs(:new).returns connection
17
- File.stubs(:open).returns content
18
- File.stubs(:exist?).returns true
19
- files.stubs(:create).returns true
20
-
21
- syncer.directories << 'tmp'
22
- syncer.path = 'storage'
23
- Backup::Syncer::S3::SyncContext.any_instance.
24
- stubs(:`).returns 'MD5(tmp/foo)= 123abcdef'
25
- end
26
-
27
- it "respects the concurrency_type setting with threads" do
28
- syncer.concurrency_type = :threads
29
-
30
- Parallel.expects(:each).with(anything, {:in_threads => 2}, anything)
31
-
32
- syncer.perform!
33
- end
34
-
35
- it "respects the parallel thread count" do
36
- syncer.concurrency_type = :threads
37
- syncer.concurrency_level = 10
38
-
39
- Parallel.expects(:each).with(anything, {:in_threads => 10}, anything)
40
-
41
- syncer.perform!
42
- end
43
-
44
- it "respects the concurrency_type setting with processors" do
45
- syncer.concurrency_type = :processes
46
-
47
- Parallel.expects(:each).with(anything, {:in_processes => 2}, anything)
48
-
49
- syncer.perform!
50
- end
51
-
52
- it "respects the parallel thread count" do
53
- syncer.concurrency_type = :processes
54
- syncer.concurrency_level = 10
55
-
56
- Parallel.expects(:each).with(anything, {:in_processes => 10}, anything)
57
-
58
- syncer.perform!
59
- end
60
-
61
- context 'file exists locally' do
62
- it "uploads a file if it does not exist remotely" do
63
- files.expects(:create).with(:key => 'storage/tmp/foo', :body => content)
64
-
65
- syncer.perform!
66
- end
67
-
68
- it "uploads a file if it exists remotely with a different MD5" do
69
- files << stub('file', :key => 'storage/tmp/foo', :etag => 'abcdef123')
70
-
71
- files.expects(:create).with(:key => 'storage/tmp/foo', :body => content)
72
-
73
- syncer.perform!
74
- end
75
-
76
- it "does nothing if the file exists remotely with the same MD5" do
77
- files << stub('file', :key => 'storage/tmp/foo', :etag => '123abcdef')
78
-
79
- files.expects(:create).never
80
-
81
- syncer.perform!
82
- end
83
-
84
- it "skips the file if it no longer exists locally" do
85
- File.stubs(:exist?).returns false
86
-
87
- files.expects(:create).never
88
-
89
- syncer.perform!
90
- end
91
-
92
- it "respects the given path" do
93
- syncer.path = 'box'
94
-
95
- files.expects(:create).with(:key => 'box/tmp/foo', :body => content)
96
-
97
- syncer.perform!
98
- end
99
-
100
- it "uploads the content of the local file" do
101
- File.expects(:open).with('tmp/foo').returns content
102
-
103
- syncer.perform!
104
- end
105
-
106
- it "creates the connection with the provided credentials" do
107
- syncer.api_key = 'my-key'
108
- syncer.username = 'my-name'
109
- syncer.auth_url = 'my-auth'
110
- syncer.servicenet = 'my-servicenet'
111
-
112
- Fog::Storage.expects(:new).with(
113
- :provider => 'Rackspace',
114
- :rackspace_api_key => 'my-key',
115
- :rackspace_username => 'my-name',
116
- :rackspace_auth_url => 'my-auth',
117
- :rackspace_servicenet => 'my-servicenet'
118
- ).returns connection
119
-
120
- syncer.perform!
121
- end
122
-
123
- it "uses the container with the given name" do
124
- syncer.container = 'leaky'
125
-
126
- connection.directories.expects(:get).with('leaky').returns(container)
127
-
128
- syncer.perform!
129
- end
130
-
131
- it "creates the container if one does not exist" do
132
- syncer.container = 'leaky'
133
- connection.directories.stubs(:get).returns nil
134
-
135
- connection.directories.expects(:create).
136
- with(:key => 'leaky').returns(container)
137
-
138
- syncer.perform!
139
- end
140
-
141
- it "iterates over each directory" do
142
- syncer.directories << 'files'
143
-
144
- Backup::Syncer::CloudFiles::SyncContext.any_instance.expects(:`).
145
- with('find tmp -print0 | xargs -0 openssl md5 2> /dev/null').
146
- returns 'MD5(tmp/foo)= 123abcdef'
147
- Backup::Syncer::CloudFiles::SyncContext.any_instance.expects(:`).
148
- with('find files -print0 | xargs -0 openssl md5 2> /dev/null').
149
- returns 'MD5(tmp/foo)= 123abcdef'
150
-
151
- syncer.perform!
152
- end
153
- end
154
-
155
- context 'file does not exist locally' do
156
- let(:file) { stub('file', :key => 'storage/tmp/foo',
157
- :etag => '123abcdef') }
158
-
159
- before :each do
160
- Backup::Syncer::CloudFiles::SyncContext.any_instance.
161
- stubs(:`).returns ''
162
- files << file
163
- File.stubs(:exist?).returns false
164
- end
165
-
166
- it "removes the remote file when mirroring is turned on" do
167
- syncer.mirror = true
168
-
169
- file.expects(:destroy).once
170
-
171
- syncer.perform!
172
- end
173
-
174
- it "leaves the remote file when mirroring is turned off" do
175
- syncer.mirror = false
176
-
177
- file.expects(:destroy).never
178
-
179
- syncer.perform!
180
- end
181
-
182
- it "does not remove files not under one of the specified directories" do
183
- file.stubs(:key).returns 'unsynced/tmp/foo'
184
- syncer.mirror = true
185
-
186
- file.expects(:destroy).never
187
-
188
- syncer.perform!
189
- end
190
- end
191
- end
192
- end
@@ -1,192 +0,0 @@
1
- # encoding: utf-8
2
- require File.expand_path('../../spec_helper.rb', __FILE__)
3
-
4
- class Parallel; end
5
-
6
- describe Backup::Syncer::S3 do
7
- describe '#perform!' do
8
- let(:syncer) { Backup::Syncer::S3.new }
9
- let(:connection) { stub('connection',
10
- :directories => stub('directories', :get => bucket)) }
11
- let(:bucket) { stub('bucket', :files => files) }
12
- let(:files) { [] }
13
- let(:content) { stub('content') }
14
-
15
- before :each do
16
- Fog::Storage.stubs(:new).returns connection
17
- File.stubs(:open).returns content
18
- File.stubs(:exist?).returns true
19
- files.stubs(:create).returns true
20
-
21
- syncer.directories << 'tmp'
22
- syncer.path = 'storage'
23
-
24
- Backup::Syncer::S3::SyncContext.any_instance.
25
- stubs(:`).returns 'MD5(tmp/foo)= 123abcdef'
26
- end
27
-
28
- it "respects the concurrency_type setting with threads" do
29
- syncer.concurrency_type = :threads
30
-
31
- Parallel.expects(:each).with(anything, {:in_threads => 2}, anything)
32
-
33
- syncer.perform!
34
- end
35
-
36
- it "respects the parallel thread count" do
37
- syncer.concurrency_type = :threads
38
- syncer.concurrency_level = 10
39
-
40
- Parallel.expects(:each).with(anything, {:in_threads => 10}, anything)
41
-
42
- syncer.perform!
43
- end
44
-
45
- it "respects the concurrency_type setting with processors" do
46
- syncer.concurrency_type = :processes
47
-
48
- Parallel.expects(:each).with(anything, {:in_processes => 2}, anything)
49
-
50
- syncer.perform!
51
- end
52
-
53
- it "respects the parallel thread count" do
54
- syncer.concurrency_type = :processes
55
- syncer.concurrency_level = 10
56
-
57
- Parallel.expects(:each).with(anything, {:in_processes => 10}, anything)
58
-
59
- syncer.perform!
60
- end
61
-
62
- context 'file exists locally' do
63
- it "uploads a file if it does not exist remotely" do
64
- files.expects(:create).with(:key => 'storage/tmp/foo', :body => content)
65
-
66
- syncer.perform!
67
- end
68
-
69
- it "uploads a file if it exists remotely with a different MD5" do
70
- files << stub('file', :key => 'storage/tmp/foo', :etag => 'abcdef123')
71
-
72
- files.expects(:create).with(:key => 'storage/tmp/foo', :body => content)
73
-
74
- syncer.perform!
75
- end
76
-
77
- it "does nothing if the file exists remotely with the same MD5" do
78
- files << stub('file', :key => 'storage/tmp/foo', :etag => '123abcdef')
79
-
80
- files.expects(:create).never
81
-
82
- syncer.perform!
83
- end
84
-
85
- it "skips the file if it no longer exists locally" do
86
- File.stubs(:exist?).returns false
87
-
88
- files.expects(:create).never
89
-
90
- syncer.perform!
91
- end
92
-
93
- it "respects the given path" do
94
- syncer.path = 'box'
95
-
96
- files.expects(:create).with(:key => 'box/tmp/foo', :body => content)
97
-
98
- syncer.perform!
99
- end
100
-
101
- it "uploads the content of the local file" do
102
- File.expects(:open).with('tmp/foo').returns content
103
-
104
- syncer.perform!
105
- end
106
-
107
- it "creates the connection with the provided credentials" do
108
- syncer.access_key_id = 'my-access'
109
- syncer.secret_access_key = 'my-secret'
110
- syncer.region = 'somewhere'
111
-
112
- Fog::Storage.expects(:new).with(
113
- :provider => 'AWS',
114
- :aws_access_key_id => 'my-access',
115
- :aws_secret_access_key => 'my-secret',
116
- :region => 'somewhere'
117
- ).returns connection
118
-
119
- syncer.perform!
120
- end
121
-
122
- it "uses the bucket with the given name" do
123
- syncer.bucket = 'leaky'
124
-
125
- connection.directories.expects(:get).with('leaky').returns(bucket)
126
-
127
- syncer.perform!
128
- end
129
-
130
- it "creates the bucket if one does not exist" do
131
- syncer.bucket = 'leaky'
132
- syncer.region = 'elsewhere'
133
- connection.directories.stubs(:get).returns nil
134
-
135
- connection.directories.expects(:create).
136
- with(:key => 'leaky', :location => 'elsewhere').returns(bucket)
137
-
138
- syncer.perform!
139
- end
140
-
141
- it "iterates over each directory" do
142
- syncer.directories << 'files'
143
-
144
- Backup::Syncer::S3::SyncContext.any_instance.expects(:`).
145
- with('find tmp -print0 | xargs -0 openssl md5 2> /dev/null').
146
- returns 'MD5(tmp/foo)= 123abcdef'
147
- Backup::Syncer::S3::SyncContext.any_instance.expects(:`).
148
- with('find files -print0 | xargs -0 openssl md5 2> /dev/null').
149
- returns 'MD5(tmp/foo)= 123abcdef'
150
-
151
- syncer.perform!
152
- end
153
- end
154
-
155
- context 'file does not exist locally' do
156
- let(:file) { stub('file', :key => 'storage/tmp/foo',
157
- :etag => '123abcdef') }
158
-
159
- before :each do
160
- Backup::Syncer::S3::SyncContext.any_instance.
161
- stubs(:`).returns ''
162
- files << file
163
- File.stubs(:exist?).returns false
164
- end
165
-
166
- it "removes the remote file when mirroring is turned on" do
167
- syncer.mirror = true
168
-
169
- file.expects(:destroy).once
170
-
171
- syncer.perform!
172
- end
173
-
174
- it "leaves the remote file when mirroring is turned off" do
175
- syncer.mirror = false
176
-
177
- file.expects(:destroy).never
178
-
179
- syncer.perform!
180
- end
181
-
182
- it "does not remove files not under one of the specified directories" do
183
- file.stubs(:key).returns 'unsynced/tmp/foo'
184
- syncer.mirror = true
185
-
186
- file.expects(:destroy).never
187
-
188
- syncer.perform!
189
- end
190
- end
191
- end
192
- end
@@ -1,13 +0,0 @@
1
- ##
2
- # Presently [Notifier]
3
- #
4
- notify_by Presently do |presently|
5
- presently.on_success = true
6
- presently.on_warning = true
7
- presently.on_failure = true
8
-
9
- presently.subdomain = "my_subdomain"
10
- presently.user_name = "my_user_name"
11
- presently.password = "my_password"
12
- presently.group_id = "my_group_id" # optional
13
- end