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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTk3YWRjOGMzYTEwYmMyZTBiNjU1NTI5NTNlYTE0ZGQ0YzYzNzFhYQ==
4
+ ZWFjNTA4ZTk1Yzc1NDk2NDAzNmMwNGZmM2YwZjM0MDIyMGY5ODZlNQ==
5
5
  data.tar.gz: !binary |-
6
- OGZjMDNjOWNjODBiMGRlNDg3NWI4ZDk3OTBjNWEyZWJmNmIxMWI1NQ==
6
+ MTRkOGMyODFlNTliMTRlYzE1OGViYWNjOTc3ZTdjN2MzMGM3NjQ2Mg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NTkyMjgzMjE2Y2UwMzcyZjRjMDdhY2MyN2MwZjM4MjdhYWFlZGI4ZWQyNjk5
10
- ZDllY2NiMGY4MzkyNWJjNDI4MTg1M2QyYzlhMjExY2Q4ODcxODc2MTEzY2Rj
11
- YzhlZjdiMjM3YjljNDJhZmQzOTAyOWMzNzgyOWY2MGZjNjE4OWQ=
9
+ OTQyOTczNmI4NGZhOGZjZDVjZmU1ZjhkODU2NDliY2NlMGQ2YWE2YzcwZjMx
10
+ MzkzZTNiMDNiMTFjODUxMjVhMzM3OTM5ZTRmM2Q1OTg3OTc4YzFiYjM3NDU4
11
+ N2ZjNTU1NzkwOTE5MDE0YzJhN2NhZjg2ZTM1MGNhYmIyMDU0OWQ=
12
12
  data.tar.gz: !binary |-
13
- NjY5MWFkNzQ3M2M4OTYwMTdjNzBmNDY2MzU4NDQyYzE0OTdmZDAyOWYxZGE1
14
- MTA4ZjY0MDc3NTAyZTI5M2VhYTdlY2FmOGQwYTQwMDc2YmY5Y2Y1YzgyMzMx
15
- OWMwYTc1YTY2MDFmODhkZDE1ZDA4ZDJjMjMyODYxNjI0NGRkYTI=
13
+ ZWIzODJkNzU1Zjk3NTIxNzU3ZDY3MDg0YTMzYjEzMmYzODA3ZmIzYzczNmFj
14
+ NmI0YTUwMWFlYTJlN2I3ZDFlNWVlMWEzZjI1NzNjNzdmNDUyZGU5OGYwZTdi
15
+ ODM4ZDI0MGYxM2YyODNiMjJmNjM5YTQ0ZmM4OTk3ZTllZjI3YTU=
data/Gemfile CHANGED
@@ -22,3 +22,7 @@ end
22
22
  group :rubygems do
23
23
  gem 'gems', '>= 0.8.3'
24
24
  end
25
+
26
+ group :sss do
27
+ gem 'aws-sdk'
28
+ end
data/README.md CHANGED
@@ -17,3 +17,4 @@ Supported providers:
17
17
  * Cloud Foundry
18
18
  * dotCloud (experimental)
19
19
  * NPM (experimental)
20
+ * S3 (experimental)
@@ -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.180.2
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