vault-tools 0.4.10 → 0.4.11
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/.travis.yml +0 -1
- data/lib/vault-tools.rb +1 -0
- data/lib/vault-tools/s3.rb +35 -0
- data/lib/vault-tools/version.rb +1 -1
- data/test/helper.rb +2 -0
- data/test/log_test.rb +0 -1
- data/test/s3_test.rb +55 -0
- data/vault-tools.gemspec +1 -0
- metadata +21 -3
data/.travis.yml
CHANGED
data/lib/vault-tools.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
module S3
|
2
|
+
extend self
|
3
|
+
|
4
|
+
# Write value to key in S3 bucket, with logging.
|
5
|
+
#
|
6
|
+
# @param bucket [String]
|
7
|
+
# @param key [String]
|
8
|
+
# @param value [String]
|
9
|
+
def write(bucket, key, value)
|
10
|
+
Vault::Log.log(:fn => __method__, :key => key) do
|
11
|
+
s3.buckets[bucket].objects[key].write(value)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Read value from key in S3 bucket, with logging.
|
16
|
+
#
|
17
|
+
# @param bucket [String]
|
18
|
+
# @param key [String]
|
19
|
+
def read(bucket, key)
|
20
|
+
Vault::Log.log(:fn => __method__, :key => key) do
|
21
|
+
s3.buckets[bucket].objects[key].read
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Get the underlying AWS::S3 instance, creating it using environment vars
|
26
|
+
# if necessary.
|
27
|
+
def s3
|
28
|
+
@s3 ||= AWS::S3.new(
|
29
|
+
:access_key_id => Config.env('AWS_ACCESS_KEY_ID'),
|
30
|
+
:secret_access_key => Config.env('AWS_SECRET_ACCESS_KEY'),
|
31
|
+
:use_ssl => true
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/lib/vault-tools/version.rb
CHANGED
data/test/helper.rb
CHANGED
data/test/log_test.rb
CHANGED
data/test/s3_test.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class SomeS3Consumer
|
4
|
+
include S3
|
5
|
+
end
|
6
|
+
|
7
|
+
class S3Test < Vault::TestCase
|
8
|
+
include LoggedDataHelper
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
set_env 'APP_DEPLOY', 'test'
|
13
|
+
set_env 'AWS_ACCESS_KEY_ID', 'fake access key id'
|
14
|
+
set_env 'AWS_SECRET_ACCESS_KEY', 'fake secret access key'
|
15
|
+
AWS.stub!
|
16
|
+
@consumer = SomeS3Consumer.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def log_output
|
20
|
+
Scrolls.stream.string
|
21
|
+
end
|
22
|
+
|
23
|
+
# S3 writes should be logged.
|
24
|
+
def test_write_logs
|
25
|
+
@consumer.write('fake bucket', 'fake key', 'fake value')
|
26
|
+
assert_match /fake key/, log_output
|
27
|
+
end
|
28
|
+
|
29
|
+
# S3 reads should be logged.
|
30
|
+
def test_read_logs
|
31
|
+
@consumer.read('fake bucket', 'fake key')
|
32
|
+
assert_match /fake key/, log_output
|
33
|
+
end
|
34
|
+
|
35
|
+
# Should use S3 to write to bucket
|
36
|
+
def test_writes_to_s3_bucket
|
37
|
+
mock(@consumer).s3.mock!.buckets.
|
38
|
+
mock!.[]('fake bucket').
|
39
|
+
mock!.objects.
|
40
|
+
mock!.[]('fake key').
|
41
|
+
mock!.write('fake value')
|
42
|
+
@consumer.write('fake bucket', 'fake key', 'fake value')
|
43
|
+
end
|
44
|
+
|
45
|
+
# Should use S3 to read from bucket
|
46
|
+
def test_reads_from_s3_bucket
|
47
|
+
#s3.buckets[bucket].objects[key].read
|
48
|
+
mock(@consumer).s3.mock!.buckets.
|
49
|
+
mock!.[]('fake bucket').
|
50
|
+
mock!.objects.
|
51
|
+
mock!.[]('fake key').
|
52
|
+
mock!.read
|
53
|
+
@consumer.read('fake bucket', 'fake key')
|
54
|
+
end
|
55
|
+
end
|
data/vault-tools.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vault-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -156,6 +156,22 @@ dependencies:
|
|
156
156
|
- - ! '>='
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: aws-sdk
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - ! '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
type: :runtime
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
171
|
+
requirements:
|
172
|
+
- - ! '>='
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
159
175
|
description: Basic tools for Heroku Vault's Ruby projects
|
160
176
|
email:
|
161
177
|
- christopher.continanza@gmail.com
|
@@ -185,6 +201,7 @@ files:
|
|
185
201
|
- lib/vault-tools/payments_db_tasks.rb
|
186
202
|
- lib/vault-tools/pipeline.rb
|
187
203
|
- lib/vault-tools/product.rb
|
204
|
+
- lib/vault-tools/s3.rb
|
188
205
|
- lib/vault-tools/sinatra_helpers/html_serializer.rb
|
189
206
|
- lib/vault-tools/text_processor.rb
|
190
207
|
- lib/vault-tools/time.rb
|
@@ -200,6 +217,7 @@ files:
|
|
200
217
|
- test/log_test.rb
|
201
218
|
- test/pipeline_test.rb
|
202
219
|
- test/product_test.rb
|
220
|
+
- test/s3_test.rb
|
203
221
|
- test/text_processor_test.rb
|
204
222
|
- test/time_test.rb
|
205
223
|
- test/user_test.rb
|
@@ -219,7 +237,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
219
237
|
version: '0'
|
220
238
|
segments:
|
221
239
|
- 0
|
222
|
-
hash: -
|
240
|
+
hash: -4329855813357893782
|
223
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
224
242
|
none: false
|
225
243
|
requirements:
|
@@ -228,7 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
246
|
version: '0'
|
229
247
|
segments:
|
230
248
|
- 0
|
231
|
-
hash: -
|
249
|
+
hash: -4329855813357893782
|
232
250
|
requirements: []
|
233
251
|
rubyforge_project:
|
234
252
|
rubygems_version: 1.8.23
|