dpl 1.5.1.travis.180.2 → 1.5.1.travis.182.2
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.
- 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
|