dpl 1.5.1.travis.180.2 → 1.5.1.travis.182.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Gemfile +4 -0
- data/README.md +1 -0
- data/lib/dpl/provider.rb +1 -0
- data/lib/dpl/provider/s3.rb +47 -0
- data/spec/provider/s3_spec.rb +48 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWFjNTA4ZTk1Yzc1NDk2NDAzNmMwNGZmM2YwZjM0MDIyMGY5ODZlNQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MTRkOGMyODFlNTliMTRlYzE1OGViYWNjOTc3ZTdjN2MzMGM3NjQ2Mg==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OTQyOTczNmI4NGZhOGZjZDVjZmU1ZjhkODU2NDliY2NlMGQ2YWE2YzcwZjMx
|
10
|
+
MzkzZTNiMDNiMTFjODUxMjVhMzM3OTM5ZTRmM2Q1OTg3OTc4YzFiYjM3NDU4
|
11
|
+
N2ZjNTU1NzkwOTE5MDE0YzJhN2NhZjg2ZTM1MGNhYmIyMDU0OWQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWIzODJkNzU1Zjk3NTIxNzU3ZDY3MDg0YTMzYjEzMmYzODA3ZmIzYzczNmFj
|
14
|
+
NmI0YTUwMWFlYTJlN2I3ZDFlNWVlMWEzZjI1NzNjNzdmNDUyZGU5OGYwZTdi
|
15
|
+
ODM4ZDI0MGYxM2YyODNiMjJmNjM5YTQ0ZmM4OTk3ZTllZjI3YTU=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
data/lib/dpl/provider.rb
CHANGED
@@ -13,6 +13,7 @@ module DPL
|
|
13
13
|
autoload :Openshift, 'dpl/provider/openshift'
|
14
14
|
autoload :RubyGems, 'dpl/provider/rubygems'
|
15
15
|
autoload :NPM, 'dpl/provider/npm'
|
16
|
+
autoload :S3, 'dpl/provider/s3'
|
16
17
|
autoload :CloudControl, 'dpl/provider/cloudcontrol'
|
17
18
|
autoload :CloudFoundry, 'dpl/provider/cloud_foundry'
|
18
19
|
autoload :PyPI, 'dpl/provider/pypi'
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module DPL
|
2
|
+
class Provider
|
3
|
+
class S3 < Provider
|
4
|
+
|
5
|
+
requires 'aws-sdk'
|
6
|
+
experimental "S3"
|
7
|
+
|
8
|
+
def api
|
9
|
+
@api ||= AWS::S3.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def needs_key?
|
13
|
+
false
|
14
|
+
end
|
15
|
+
|
16
|
+
def check_app
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
def setup_auth
|
21
|
+
AWS.config(:access_key_id => option(:access_key_id), :secret_access_key => option(:secret_access_key))
|
22
|
+
end
|
23
|
+
|
24
|
+
def check_auth
|
25
|
+
setup_auth
|
26
|
+
log "Logging in with Access Key: #{option(:access_key_id)[-4..-1].rjust(20, '*')}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def push_app
|
30
|
+
Dir.glob("**/*") do |fileName|
|
31
|
+
api.buckets[option(:bucket)].objects.create(fileName, File.read(fileName)) unless File.directory?(fileName)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def deploy
|
36
|
+
super
|
37
|
+
rescue AWS::S3::Errors::InvalidAccessKeyId
|
38
|
+
raise Error, "Invalid S3 Access Key Id, Stopping Deploy"
|
39
|
+
rescue AWS::S3::Errors::SignatureDoesNotMatch
|
40
|
+
raise Error, "Aws Secret Key does not match Access Key Id, Stopping Deploy"
|
41
|
+
rescue AWS::S3::Errors::AccessDenied
|
42
|
+
raise Error, "Oops, It looks like you tried to write to a bucket that isn't yours or doesn't exist yet. Please create the bucket before trying to write to it."
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'aws-sdk'
|
3
|
+
require 'dpl/provider/s3'
|
4
|
+
|
5
|
+
describe DPL::Provider::S3 do
|
6
|
+
|
7
|
+
before (:each) do
|
8
|
+
AWS.stub!
|
9
|
+
end
|
10
|
+
|
11
|
+
subject :provider do
|
12
|
+
described_class.new(DummyContext.new, :access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz', :bucket => 'my-bucket')
|
13
|
+
end
|
14
|
+
|
15
|
+
describe :check_auth do
|
16
|
+
example do
|
17
|
+
provider.should_receive(:setup_auth)
|
18
|
+
provider.should_receive(:log).with("Logging in with Access Key: ****************jklz")
|
19
|
+
provider.check_auth
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe :setup_auth do
|
24
|
+
example do
|
25
|
+
AWS.should_receive(:config).with(:access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz').once.and_call_original
|
26
|
+
provider.setup_auth
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe :needs_key? do
|
31
|
+
example do
|
32
|
+
provider.needs_key?.should == false
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe :push_app do
|
37
|
+
example do
|
38
|
+
provider.push_app
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe :api do
|
43
|
+
example do
|
44
|
+
AWS::S3.should_receive(:new)
|
45
|
+
provider.api
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dpl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.1.travis.
|
4
|
+
version: 1.5.1.travis.182.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Konstantin Haase
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- lib/dpl/provider/openshift.rb
|
99
99
|
- lib/dpl/provider/pypi.rb
|
100
100
|
- lib/dpl/provider/rubygems.rb
|
101
|
+
- lib/dpl/provider/s3.rb
|
101
102
|
- lib/dpl/version.rb
|
102
103
|
- notes/dotcloud.md
|
103
104
|
- notes/engine_yard.md
|
@@ -112,6 +113,7 @@ files:
|
|
112
113
|
- spec/provider/openshift_spec.rb
|
113
114
|
- spec/provider/pypi_spec.rb
|
114
115
|
- spec/provider/rubygems_spec.rb
|
116
|
+
- spec/provider/s3_spec.rb
|
115
117
|
- spec/provider_spec.rb
|
116
118
|
- spec/spec_helper.rb
|
117
119
|
homepage: https://github.com/rkh/dpl
|