cloud_encrypted_sync_s3_adapter 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock
CHANGED
@@ -3,14 +3,17 @@ require 'aws-sdk'
|
|
3
3
|
module CloudEncryptedSync
|
4
4
|
module Adapters
|
5
5
|
class S3 < Template
|
6
|
-
|
6
|
+
attr_writer :bucket_name, :access_key, :access_key_id
|
7
7
|
|
8
8
|
def parse_command_line_options(parser)
|
9
9
|
parser.on('--bucket BUCKETNAME', 'Name of S3 bucket to use.') do |bucket_argument|
|
10
|
-
self.bucket_name = bucket_argument
|
10
|
+
self.bucket_name = bucket_argument
|
11
11
|
end
|
12
|
-
parser.on('--
|
13
|
-
self.
|
12
|
+
parser.on('--access-key KEY', 'Access Key for S3 login.') do |bucket_argument|
|
13
|
+
self.access_key = bucket_argument
|
14
|
+
end
|
15
|
+
parser.on('--access-key-id KEYID', 'Access Key ID for S3 login.') do |bucket_argument|
|
16
|
+
self.access_key_id = bucket_argument
|
14
17
|
end
|
15
18
|
end
|
16
19
|
|
@@ -38,8 +41,20 @@ module CloudEncryptedSync
|
|
38
41
|
private
|
39
42
|
#######
|
40
43
|
|
44
|
+
def bucket_name
|
45
|
+
@bucket_name || Configuration.settings['s3-bucket']
|
46
|
+
end
|
47
|
+
|
48
|
+
def access_key
|
49
|
+
@access_key || Configuration.settings['s3-access-key']
|
50
|
+
end
|
51
|
+
|
52
|
+
def access_key_id
|
53
|
+
@access_key_id || Configuration.settings['s3-access-key-id']
|
54
|
+
end
|
55
|
+
|
41
56
|
def connection
|
42
|
-
@connection ||= AWS::S3.new(:access_key_id =>
|
57
|
+
@connection ||= AWS::S3.new(:access_key_id => access_key_id, :secret_access_key => access_key)
|
43
58
|
end
|
44
59
|
|
45
60
|
def bucket
|
data/test/unit/adapter_test.rb
CHANGED
@@ -18,20 +18,21 @@ module CloudEncryptedSyncS3Adapter
|
|
18
18
|
test 'should parse command line options' do
|
19
19
|
unstub_configuration
|
20
20
|
Object.send(:remove_const,:ARGV)
|
21
|
-
::ARGV = '--bucket foobar --
|
21
|
+
::ARGV = '--bucket foobar --access-key-id KEY_ID --access-key ACCESS_KEY'.split(/\s/)
|
22
22
|
@command_line_options = {}
|
23
23
|
@option_parser = OptionParser.new do |parser|
|
24
24
|
adapter.parse_command_line_options(parser)
|
25
25
|
end
|
26
26
|
@option_parser.parse!
|
27
|
-
assert_equal(
|
28
|
-
assert_equal(
|
27
|
+
assert_equal('foobar',CloudEncryptedSync::Adapters::S3.instance.send(:bucket_name))
|
28
|
+
assert_equal('KEY_ID',CloudEncryptedSync::Adapters::S3.instance.send(:access_key_id))
|
29
|
+
assert_equal('ACCESS_KEY',CloudEncryptedSync::Adapters::S3.instance.send(:access_key))
|
29
30
|
stub_configuration
|
30
31
|
end
|
31
32
|
|
32
33
|
test 'should write readable data to s3 and then delete it' do
|
33
34
|
|
34
|
-
skip 'S3 credentials for test bucket not provided.' unless
|
35
|
+
skip 'S3 credentials for test bucket not provided.' unless access_key and access_key_id
|
35
36
|
|
36
37
|
test_data = 'testdata'
|
37
38
|
test_key = 'testkey'
|
@@ -59,8 +60,12 @@ module CloudEncryptedSyncS3Adapter
|
|
59
60
|
private
|
60
61
|
#######
|
61
62
|
|
62
|
-
def
|
63
|
-
@config['
|
63
|
+
def access_key
|
64
|
+
@config['s3-access-key']
|
65
|
+
end
|
66
|
+
|
67
|
+
def access_key_id
|
68
|
+
@config['s3-access-key-id']
|
64
69
|
end
|
65
70
|
|
66
71
|
def create_test_bucket
|
@@ -68,7 +73,7 @@ module CloudEncryptedSyncS3Adapter
|
|
68
73
|
end
|
69
74
|
|
70
75
|
def delete_test_bucket
|
71
|
-
adapter.instance.send(:bucket).delete!
|
76
|
+
adapter.instance.send(:bucket).delete! if access_key and access_key_id
|
72
77
|
end
|
73
78
|
|
74
79
|
def test_bucket_name
|
@@ -80,19 +85,19 @@ module CloudEncryptedSyncS3Adapter
|
|
80
85
|
{
|
81
86
|
:excryption_key => 'abc',
|
82
87
|
:adapter => 's3',
|
83
|
-
:
|
84
|
-
:sync_path => '/non/existent/path',
|
85
|
-
:s3_credentials => @config['s3_credentials']
|
88
|
+
:sync_path => '/any/path',
|
86
89
|
}
|
87
90
|
)
|
88
91
|
CloudEncryptedSync::Adapters::S3.any_instance.stubs(:bucket_name).returns(test_bucket_name)
|
89
|
-
CloudEncryptedSync::Adapters::S3.any_instance.stubs(:
|
92
|
+
CloudEncryptedSync::Adapters::S3.any_instance.stubs(:access_key).returns(access_key)
|
93
|
+
CloudEncryptedSync::Adapters::S3.any_instance.stubs(:access_key_id).returns(access_key_id)
|
90
94
|
end
|
91
95
|
|
92
96
|
def unstub_configuration
|
93
97
|
CloudEncryptedSync::Configuration.unstub(:settings)
|
94
98
|
CloudEncryptedSync::Adapters::S3.any_instance.unstub(:bucket_name)
|
95
|
-
CloudEncryptedSync::Adapters::S3.any_instance.unstub(:
|
99
|
+
CloudEncryptedSync::Adapters::S3.any_instance.unstub(:access_key)
|
100
|
+
CloudEncryptedSync::Adapters::S3.any_instance.unstub(:access_key_id)
|
96
101
|
end
|
97
102
|
end
|
98
103
|
end
|