glacier_on_rails 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d041c35dfaf1909f44aa6692052b92cc4ae114d6
4
- data.tar.gz: caafb290a9dfa988677685f3181e5697c3ff8eda
3
+ metadata.gz: 4fca450bd43aa00111403add1acd3505f4d7775b
4
+ data.tar.gz: 0c49c3ede142e1d3c9b952f2d8762282a6dce3db
5
5
  SHA512:
6
- metadata.gz: 38d0fe97e6ee3045d7b93152f4889577d95cfe1fa7ea32b4d4837496edb99c43c808d78036501a58ea480c706d5be220dedda948cac3eef6b39ec0e4a9b36ae6
7
- data.tar.gz: 2d08b5f9f515a6b8b3d3976cb56c08a6981a615cad1fdd52dd16ab183bf11206d36616985b2170bad638ba6dd1d4f7ac4539dde070ee8acb8e890db7ca879379
6
+ metadata.gz: 3f7da1e401918ff170f0fb66e4d20a1803fa86c3e1202137e67f4e0296130d5762cc680c2ea24b67a640e7011bc080c154ce9e049c6e1a6a4dce836e138e24db
7
+ data.tar.gz: c968f47766e1485690c3de3653cfde5852487d112eceb147cb86e91f7f767e6fa708aa7ae56c5924cd6d168342f2792f1ee9d5d546e97a99cca5ec0641a9acd4
data/Gemfile CHANGED
@@ -17,5 +17,9 @@ gem "pg"
17
17
  # To use debugger
18
18
  # gem 'debugger'
19
19
  gem 'webmock', :git => 'https://github.com/lazylester/webmock.git' # contains a patch... use this fork until the primary sources merges the patch
20
-
20
+ gem 'rspec-rails', :git => "https://github.com/rspec/rspec-rails.git", :ref => "ac759a3" # contains a patch which solves a problem surfacing with rails 5.1
21
+ gem 'rspec-core', :git => "https://github.com/rspec/rspec-core.git", :ref => "0e0584f" # required by the rspec-rails version, above
22
+ gem 'rspec-mocks', :git => "https://github.com/rspec/rspec-mocks.git", :ref => "4847ef0" # ditto
23
+ gem 'rspec-expectations', :git => "https://github.com/rspec/rspec-expectations.git", :ref => "5c4ca95" # ditto
24
+ gem 'rspec-support', :git => "https://github.com/rspec/rspec-support.git", :ref => "491e723" # ditto
21
25
  gem "aws-sdk", "~> 2"
data/Gemfile.lock CHANGED
@@ -7,12 +7,59 @@ GIT
7
7
  crack (>= 0.3.2)
8
8
  hashdiff
9
9
 
10
+ GIT
11
+ remote: https://github.com/rspec/rspec-core.git
12
+ revision: 0e0584f5c0624f244c9800f4a66b1256e496d14a
13
+ ref: 0e0584f
14
+ specs:
15
+ rspec-core (3.7.0.pre)
16
+ rspec-support (= 3.7.0.pre)
17
+
18
+ GIT
19
+ remote: https://github.com/rspec/rspec-expectations.git
20
+ revision: 5c4ca95b030788e2f62ee82335ed5836bd83c8e8
21
+ ref: 5c4ca95
22
+ specs:
23
+ rspec-expectations (3.7.0.pre)
24
+ diff-lcs (>= 1.2.0, < 2.0)
25
+ rspec-support (= 3.7.0.pre)
26
+
27
+ GIT
28
+ remote: https://github.com/rspec/rspec-mocks.git
29
+ revision: 4847ef067b60e3725a9e4819b9d0ee0f5c5262eb
30
+ ref: 4847ef0
31
+ specs:
32
+ rspec-mocks (3.7.0.pre)
33
+ diff-lcs (>= 1.2.0, < 2.0)
34
+ rspec-support (= 3.7.0.pre)
35
+
36
+ GIT
37
+ remote: https://github.com/rspec/rspec-rails.git
38
+ revision: ac759a3691242b971ee8388ea77a8051d6fe15b4
39
+ ref: ac759a3
40
+ specs:
41
+ rspec-rails (3.7.0.pre)
42
+ actionpack (>= 3.0)
43
+ activesupport (>= 3.0)
44
+ railties (>= 3.0)
45
+ rspec-core (= 3.7.0.pre)
46
+ rspec-expectations (= 3.7.0.pre)
47
+ rspec-mocks (= 3.7.0.pre)
48
+ rspec-support (= 3.7.0.pre)
49
+
50
+ GIT
51
+ remote: https://github.com/rspec/rspec-support.git
52
+ revision: 491e7236856d93103718a8e30e8b9a415fbad28b
53
+ ref: 491e723
54
+ specs:
55
+ rspec-support (3.7.0.pre)
56
+
10
57
  PATH
11
58
  remote: .
12
59
  specs:
13
- glacier_on_rails (0.9.4)
14
- httparty
15
- rails (~> 5.1.0)
60
+ glacier_on_rails (0.9.5)
61
+ httparty (~> 0.15.5)
62
+ rails (~> 5.1)
16
63
 
17
64
  GEM
18
65
  remote: http://rubygems.org/
@@ -128,7 +175,6 @@ GEM
128
175
  mini_portile2 (2.2.0)
129
176
  minitest (5.10.2)
130
177
  multi_xml (0.6.0)
131
- mysql2 (0.4.7)
132
178
  nio4r (2.1.0)
133
179
  nokogiri (1.8.0)
134
180
  mini_portile2 (~> 2.2.0)
@@ -165,23 +211,6 @@ GEM
165
211
  rake (>= 0.8.7)
166
212
  thor (>= 0.18.1, < 2.0)
167
213
  rake (12.0.0)
168
- rspec-core (3.6.0)
169
- rspec-support (~> 3.6.0)
170
- rspec-expectations (3.6.0)
171
- diff-lcs (>= 1.2.0, < 2.0)
172
- rspec-support (~> 3.6.0)
173
- rspec-mocks (3.6.0)
174
- diff-lcs (>= 1.2.0, < 2.0)
175
- rspec-support (~> 3.6.0)
176
- rspec-rails (3.6.0)
177
- actionpack (>= 3.0)
178
- activesupport (>= 3.0)
179
- railties (>= 3.0)
180
- rspec-core (~> 3.6.0)
181
- rspec-expectations (~> 3.6.0)
182
- rspec-mocks (~> 3.6.0)
183
- rspec-support (~> 3.6.0)
184
- rspec-support (3.6.0)
185
214
  ruby_parser (3.9.0)
186
215
  sexp_processor (~> 4.1)
187
216
  rubyzip (1.2.1)
@@ -214,18 +243,21 @@ PLATFORMS
214
243
 
215
244
  DEPENDENCIES
216
245
  aws-sdk (~> 2)
217
- byebug
218
- capybara (~> 2.4.0)
219
- coffee-rails
220
- database_cleaner
246
+ byebug (~> 9.0, >= 9.0.6)
247
+ capybara (~> 2.4)
248
+ coffee-rails (~> 4.2, >= 4.2.2)
249
+ database_cleaner (~> 1.6, >= 1.6.1)
221
250
  glacier_on_rails!
222
- haml-rails
251
+ haml-rails (~> 1.0.0)
223
252
  jquery-rails
224
- mysql2
225
253
  pg
226
- poltergeist
227
- rspec-rails
228
- selenium-webdriver
254
+ poltergeist (~> 1.15)
255
+ rspec-core!
256
+ rspec-expectations!
257
+ rspec-mocks!
258
+ rspec-rails!
259
+ rspec-support!
260
+ selenium-webdriver (~> 3.4, >= 3.4.3)
229
261
  webmock!
230
262
 
231
263
  BUNDLED WITH
data/README.md CHANGED
@@ -94,5 +94,7 @@ aws_secret_access_key = your_aws_secret_access_key
94
94
 
95
95
  ```
96
96
 
97
+ Note that the test suite assumes that such a credentials file is available on the machine on which it's being run.
98
+
97
99
  ## Database access parameters
98
100
  The pg_restore command depends on the existence of a file called ~/.pgpass, containing access parameters for the database. (See [Postgres documentation](https://www.postgresql.org/docs/9.3/static/libpq-pgpass.html) for format details).
@@ -28,6 +28,8 @@ class ApplicationDataBackup < ActiveRecord::Base
28
28
  # don't bother creating the file archives if the db archive fails
29
29
  self.glacier_file_archives = GlacierFileArchive.all! if glacier_db_archive.persisted?
30
30
  # if any of them fail, we have errors
31
+ rescue RuntimeError => e
32
+ errors.add(:base, "Create archive failed: #{e.class.name}, #{e.message}")
31
33
  end
32
34
 
33
35
  def initiate_retrieval
@@ -12,6 +12,9 @@ class AwsBackend
12
12
  unless vault_list.map(&:vault_name).include?(::SITE_NAME)
13
13
  @client.create_vault({:account_id => "-", :vault_name => ::SITE_NAME})
14
14
  end
15
+ rescue => e
16
+ AwsLog.info "Failed to initialize AwsBackend: #{e.class.name}: #{e.message}"
17
+ raise
15
18
  end
16
19
 
17
20
  def self.credentials
@@ -3,28 +3,25 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "glacier_on_rails"
6
- s.version = "0.9.4"
6
+ s.version = "0.9.5"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.authors = ["Les Nightingill"]
10
- s.date = "2017-07-07"
10
+ s.date = "2017-07-09"
11
11
  s.description = "Rails engine for database backup/restore to/from Amazon Glacier, including file attachments."
12
12
  s.email = ["codehacker@comcast.net"]
13
- #s.files = ["app/assets", "app/assets/images", "app/assets/images/glacier_on_rails", "app/assets/javascripts", "app/assets/javascripts/glacier_on_rails", "app/assets/javascripts/glacier_on_rails/application.js", "app/assets/stylesheets", "app/assets/stylesheets/glacier_on_rails", "app/assets/stylesheets/glacier_on_rails/application.css", "app/controllers", "app/controllers/glacier_on_rails", "app/controllers/glacier_on_rails/application_controller.rb", "app/controllers/glacier_on_rails/backups_controller.rb", "app/helpers", "app/helpers/glacier_on_rails", "app/helpers/glacier_on_rails/application_helper.rb", "app/models", "app/models/application_database.rb", "app/models/db_backup.rb", "app/models/backup_mailer.rb", "app/views", "app/views/glacier_on_rails", "app/views/glacier_on_rails/backup_mailer", "app/views/glacier_on_rails/backup_mailer/db_backup.html.erb", "app/views/glacier_on_rails/backups", "app/views/glacier_on_rails/backups/index.html.haml", "config/initializers", "config/initializers/time_formats.rb", "config/routes.rb", "lib/glacier_on_rails", "lib/glacier_on_rails/engine.rb", "lib/glacier_on_rails/version.rb", "lib/glacier_on_rails.rb", "lib/tasks", "lib/tasks/backup.rake", "lib/tasks/email_backup.rake", "MIT-LICENSE", "Rakefile", "README.rdoc"]
14
13
  s.files = Dir.glob("{{app,config,db,lib,script,spec}/**/*,*}").reject{|f| f =~ /(cache|\.log|\.gem$)/}
15
14
  s.require_paths = ["lib"]
16
15
  s.rubygems_version = "2.1.11"
17
16
  s.summary = "database backup/restore utilities"
18
17
 
19
- s.add_runtime_dependency("rails", "~> 5.1.0")
20
- s.add_runtime_dependency("httparty")
21
- s.add_development_dependency("mysql2")
22
- s.add_development_dependency("rspec-rails")
23
- s.add_development_dependency("byebug")
24
- s.add_development_dependency("capybara", "~> 2.4.0")
25
- s.add_development_dependency 'selenium-webdriver'
26
- s.add_development_dependency 'poltergeist'
27
- s.add_development_dependency 'haml-rails'
28
- s.add_development_dependency 'coffee-rails'
29
- s.add_development_dependency 'database_cleaner'
18
+ s.add_runtime_dependency "rails", "~> 5.1"
19
+ s.add_runtime_dependency "httparty", "~> 0.15.5"
20
+ s.add_development_dependency "byebug", "~> 9.0", ">= 9.0.6"
21
+ s.add_development_dependency("capybara", "~> 2.4")
22
+ s.add_development_dependency 'selenium-webdriver', "~>3.4", ">=3.4.3"
23
+ s.add_development_dependency 'poltergeist', "~> 1.15"
24
+ s.add_development_dependency 'haml-rails', "~> 1.0"
25
+ s.add_development_dependency 'coffee-rails', "~> 4.2", ">= 4.2.2"
26
+ s.add_development_dependency 'database_cleaner', "~> 1.6", ">= 1.6.1"
30
27
  end
@@ -151,6 +151,18 @@ feature "backup_now", :js => true do
151
151
  end
152
152
  end
153
153
 
154
+ context "when AWS sdk responds with an error" do
155
+ before do
156
+ allow_any_instance_of(Aws::Plugins::RequestSigner::Handler).to receive(:missing_credentials?).and_return(true)
157
+ end
158
+
159
+ it "should not create a new application_data_backup" do
160
+ page.find('#backup_now').click
161
+ wait_for_ajax
162
+ expect(flash_message).to eq "failed to create backup"
163
+ end
164
+ end
165
+
154
166
  context "when there is a database configuration error" do
155
167
  before do
156
168
  allow(ActiveRecord::Base).to receive(:configurations).and_return({"test"=> {"host" => "bosh"}})
@@ -24,6 +24,18 @@ describe "ApplicationDataBackup#create" do
24
24
  end
25
25
  end
26
26
 
27
+ describe "ApplicationDataBackup#create with AWS sdk error" do
28
+ before do
29
+ allow_any_instance_of(Aws::Plugins::RequestSigner::Handler).to receive(:missing_credentials?).and_return(true)
30
+ end
31
+
32
+ it "should create an unpersisted instance with errors" do
33
+ @application_data_backup = ApplicationDataBackup.create
34
+ expect(@application_data_backup).not_to be_persisted
35
+ expect(@application_data_backup.errors.full_messages).to include "Create archive failed: Aws::Errors::MissingCredentialsError, unable to sign request without credentials set"
36
+ end
37
+ end
38
+
27
39
  describe "ApplicationDataBackup#initiate_retrieval" do
28
40
  include HttpMockHelpers
29
41
  include DummyAppDb
@@ -20,7 +20,7 @@ describe 'GlacierDbArchive.create' do
20
20
  end
21
21
  end
22
22
 
23
- describe 'GlacierDbArchive.create with error' do
23
+ describe 'GlacierDbArchive.create with error response from server' do
24
24
  include HttpMockHelpers
25
25
  include AwsHelper
26
26
 
@@ -38,6 +38,16 @@ describe 'GlacierDbArchive.create with error' do
38
38
  end
39
39
  end
40
40
 
41
+ describe 'GlacierDbArchive.create with error response from AWS sdk' do
42
+ before do
43
+ allow_any_instance_of(Aws::Plugins::RequestSigner::Handler).to receive(:missing_credentials?).and_return(true)
44
+ end
45
+
46
+ it "should fail to create archive" do
47
+ expect{GlacierDbArchive.create}.to raise_exception( Aws::Errors::MissingCredentialsError,"unable to sign request without credentials set")
48
+ end
49
+ end
50
+
41
51
  describe GlacierOnRails::AwsSnsSubscriptionsController, :type => :controller do
42
52
  include HttpMockHelpers
43
53
  include AwsHelper
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glacier_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Les Nightingill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-07 00:00:00.000000000 Z
11
+ date: 2017-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,154 +16,150 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 5.1.0
19
+ version: '5.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 5.1.0
26
+ version: '5.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: httparty
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.15.5
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.15.5
41
41
  - !ruby/object:Gem::Dependency
42
- name: mysql2
42
+ name: byebug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
45
+ - - "~>"
53
46
  - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
47
+ version: '9.0'
59
48
  - - ">="
60
49
  - !ruby/object:Gem::Version
61
- version: '0'
50
+ version: 9.0.6
62
51
  type: :development
63
52
  prerelease: false
64
53
  version_requirements: !ruby/object:Gem::Requirement
65
54
  requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: byebug
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
55
+ - - "~>"
74
56
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
57
+ version: '9.0'
80
58
  - - ">="
81
59
  - !ruby/object:Gem::Version
82
- version: '0'
60
+ version: 9.0.6
83
61
  - !ruby/object:Gem::Dependency
84
62
  name: capybara
85
63
  requirement: !ruby/object:Gem::Requirement
86
64
  requirements:
87
65
  - - "~>"
88
66
  - !ruby/object:Gem::Version
89
- version: 2.4.0
67
+ version: '2.4'
90
68
  type: :development
91
69
  prerelease: false
92
70
  version_requirements: !ruby/object:Gem::Requirement
93
71
  requirements:
94
72
  - - "~>"
95
73
  - !ruby/object:Gem::Version
96
- version: 2.4.0
74
+ version: '2.4'
97
75
  - !ruby/object:Gem::Dependency
98
76
  name: selenium-webdriver
99
77
  requirement: !ruby/object:Gem::Requirement
100
78
  requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.4'
101
82
  - - ">="
102
83
  - !ruby/object:Gem::Version
103
- version: '0'
84
+ version: 3.4.3
104
85
  type: :development
105
86
  prerelease: false
106
87
  version_requirements: !ruby/object:Gem::Requirement
107
88
  requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '3.4'
108
92
  - - ">="
109
93
  - !ruby/object:Gem::Version
110
- version: '0'
94
+ version: 3.4.3
111
95
  - !ruby/object:Gem::Dependency
112
96
  name: poltergeist
113
97
  requirement: !ruby/object:Gem::Requirement
114
98
  requirements:
115
- - - ">="
99
+ - - "~>"
116
100
  - !ruby/object:Gem::Version
117
- version: '0'
101
+ version: '1.15'
118
102
  type: :development
119
103
  prerelease: false
120
104
  version_requirements: !ruby/object:Gem::Requirement
121
105
  requirements:
122
- - - ">="
106
+ - - "~>"
123
107
  - !ruby/object:Gem::Version
124
- version: '0'
108
+ version: '1.15'
125
109
  - !ruby/object:Gem::Dependency
126
110
  name: haml-rails
127
111
  requirement: !ruby/object:Gem::Requirement
128
112
  requirements:
129
- - - ">="
113
+ - - "~>"
130
114
  - !ruby/object:Gem::Version
131
- version: '0'
115
+ version: '1.0'
132
116
  type: :development
133
117
  prerelease: false
134
118
  version_requirements: !ruby/object:Gem::Requirement
135
119
  requirements:
136
- - - ">="
120
+ - - "~>"
137
121
  - !ruby/object:Gem::Version
138
- version: '0'
122
+ version: '1.0'
139
123
  - !ruby/object:Gem::Dependency
140
124
  name: coffee-rails
141
125
  requirement: !ruby/object:Gem::Requirement
142
126
  requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '4.2'
143
130
  - - ">="
144
131
  - !ruby/object:Gem::Version
145
- version: '0'
132
+ version: 4.2.2
146
133
  type: :development
147
134
  prerelease: false
148
135
  version_requirements: !ruby/object:Gem::Requirement
149
136
  requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '4.2'
150
140
  - - ">="
151
141
  - !ruby/object:Gem::Version
152
- version: '0'
142
+ version: 4.2.2
153
143
  - !ruby/object:Gem::Dependency
154
144
  name: database_cleaner
155
145
  requirement: !ruby/object:Gem::Requirement
156
146
  requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '1.6'
157
150
  - - ">="
158
151
  - !ruby/object:Gem::Version
159
- version: '0'
152
+ version: 1.6.1
160
153
  type: :development
161
154
  prerelease: false
162
155
  version_requirements: !ruby/object:Gem::Requirement
163
156
  requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.6'
164
160
  - - ">="
165
161
  - !ruby/object:Gem::Version
166
- version: '0'
162
+ version: 1.6.1
167
163
  description: Rails engine for database backup/restore to/from Amazon Glacier, including
168
164
  file attachments.
169
165
  email: