dpl 1.5.8.travis.364.1 → 1.5.8.travis.365.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzMwMGYwNTJjOWZkNTBmYTM0YTkxYzJlMzNjMTgwNTM0YWM4YWJlNg==
4
+ M2VlNDc1MjE4NjE1OTg1YzY0OTZiOTQzODI3YzlmYjA1ZjMyNjhiYw==
5
5
  data.tar.gz: !binary |-
6
- NGMwMzQ5ZGYxZWU2MzA2NzhmNDU4MTg2MjNlZmM5OTEzYWYxN2Y2Ng==
6
+ MDNiZDkwZjE1Zjc0NTViNWY4YmRmNWI2NGZiNjdiNzA0MjdmNjNhMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NzcyMzBkYTcwZjU3OGM4ZWQ5ZWViZTMzMGYxNzJjNjk0YWVlNjkxMTdjODli
10
- NjQxY2JmMDY5N2Q2NjNjZjQyODdjMGE2NTQzNjUyNjUwNWU5MDczOGQ4ZGI4
11
- ZjdlZjg5ZTk1MjhhM2MzYmRkYTBhMmVmMGY2Nzg3ZWIzNWYxYzc=
9
+ NTg4OWNiYmQ3MDViOTBjNzg5OTJhM2FjMzhlZDlmODQxMjZkMzhjY2Q4YmU4
10
+ OWVmNmM3MGQ2ODc0OTBhMWMyNjBhNDE5M2ZiMjYyZmI1YTFiZWE4ZTgzMzhk
11
+ NzRiMDMwMGQzZmJkNzYyMjI3MzQ3YjkzOGIxNTVkN2NhZmMxYWU=
12
12
  data.tar.gz: !binary |-
13
- Yzg0N2Q2MTg1YzNhMWQ0OWU1NTJmOTU1OTQyYWFlZjM2MmNkYTc0MmZmZjQ4
14
- ZmU5MzAxOTkzYzZmMzk1ZTQxYzJjZTRmMjE5YWI1ZDQyY2NhMjg5OGUxMWI5
15
- NTE5MmNlYzg3NjliMzRhZTFmMTE1ZTA0OWFmNTdkNDVmZGU1ZDg=
13
+ NjA4OWI1NDc3MDkwYmJmNTU5NTEyMTA1ZmU2ZTI0ZDJhMWVkMDFmNTEyZTNl
14
+ YmZhZjA5YzM5N2VjNzRmMzg3MGI3ZWJhYjkxODUzYzRkZGNmYTkwNDRmOTI5
15
+ YzMzNzRmYTllYjY5ZDk2M2VmOTUwMjQ5NTE5Yjk3YjA2OTg3MTg=
data/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  Dpl supports the following providers:
6
6
 
7
7
  * [AppFog](#appfog)
8
+ * [Cloud 66](#cloud-66)
8
9
  * [Cloud Foundry](#cloud-foundry)
9
10
  * [cloudControl](#cloudcontrol)
10
11
  * [dotCloud (experimental)](#dotcloud)
@@ -180,7 +181,7 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
180
181
  #### Examples:
181
182
 
182
183
  dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket>
183
- dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --region:us-west-2 --local-dir= BUILD --upload-dir=BUILDS
184
+ dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --region:us-west-2 --local-dir= BUILD --upload-dir=BUILDS
184
185
 
185
186
  ### OpsWorks:
186
187
 
@@ -277,3 +278,13 @@ For accounts using two factor authentication, you have to use an oauth token as
277
278
  #### Examples:
278
279
 
279
280
  dpl --provider=releases --api-key=<api-key> --file=build.tar.gz
281
+
282
+ ### Cloud 66
283
+
284
+ #### Options:
285
+
286
+ * **redeployment_hook**: The redeployment hook URL. Available from the Information menu within the Cloud 66 portal.
287
+
288
+ #### Examples:
289
+
290
+ dpl --provider=cloud66 --redeployment_hook=<url>
data/lib/dpl/provider.rb CHANGED
@@ -21,7 +21,8 @@ module DPL
21
21
  autoload :CloudFiles, 'dpl/provider/cloud_files'
22
22
  autoload :OpsWorks, 'dpl/provider/ops_works'
23
23
  autoload :Modulus, 'dpl/provider/modulus'
24
- autoload :Releases, 'dpl/provider/releases'
24
+ autoload :Releases, 'dpl/provider/releases'
25
+ autoload :Cloud66, 'dpl/provider/cloud66'
25
26
 
26
27
  def self.new(context, options)
27
28
  return super if self < Provider
@@ -0,0 +1,38 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+
4
+ module DPL
5
+ class Provider
6
+ class Cloud66 < Provider
7
+ def needs_key?
8
+ false
9
+ end
10
+
11
+ def push_app
12
+ uri = URI.parse(redeployment_hook)
13
+
14
+ response = webhook_call(uri.scheme, uri.host, uri.port, uri.path)
15
+
16
+ error("Redeployment failed [#{response.code}]") if response.code != '200'
17
+ end
18
+
19
+ def check_auth
20
+ end
21
+
22
+ private
23
+
24
+ def webhook_call(scheme, host, port, path)
25
+ http = Net::HTTP.new(host, port)
26
+ http.use_ssl = (scheme.downcase == 'https')
27
+
28
+ request = Net::HTTP::Post.new(path)
29
+
30
+ return http.request(request)
31
+ end
32
+
33
+ def redeployment_hook
34
+ option(:redeployment_hook)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+ require 'dpl/provider/cloud66'
3
+
4
+ describe DPL::Provider::Cloud66 do
5
+ subject :provider do
6
+ described_class.new(DummyContext.new, options)
7
+ end
8
+
9
+ let(:successful_response){ double(code: '200') }
10
+ let(:not_found_response){ double(code: '404') }
11
+ let(:options){ {} }
12
+
13
+ describe :push_app do
14
+ context 'with a successful response' do
15
+ let(:options){ {:redeployment_hook => 'https://hooks.cloud66.com/stacks/redeploy/0101010101010101'} }
16
+
17
+ example do
18
+ provider.should_receive(:webhook_call).with('https', 'hooks.cloud66.com', 443, '/stacks/redeploy/0101010101010101').and_return(successful_response)
19
+ provider.push_app
20
+ end
21
+ end
22
+
23
+ context 'with a 404 response' do
24
+ let(:options){ {:redeployment_hook => 'https://hooks.cloud66.com/stacks/redeploy/0101010101010101'} }
25
+
26
+ it 'should raise an error' do
27
+ provider.should_receive(:webhook_call).with('https', 'hooks.cloud66.com', 443, '/stacks/redeploy/0101010101010101').and_return(not_found_response)
28
+ lambda { provider.push_app }.should raise_error(DPL::Error, "Redeployment failed [404]")
29
+ end
30
+ end
31
+
32
+ context 'with missing redeployment_hook option' do
33
+ it 'should raise an error' do
34
+ lambda { provider.push_app }.should raise_error(DPL::Error, "missing redeployment_hook")
35
+ end
36
+ end
37
+ end
38
+
39
+ describe :needs_key? do
40
+ example do
41
+ provider.needs_key?.should == false
42
+ end
43
+ end
44
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.8.travis.364.1
4
+ version: 1.5.8.travis.365.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-05 00:00:00.000000000 Z
11
+ date: 2014-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -86,6 +86,7 @@ files:
86
86
  - lib/dpl/error.rb
87
87
  - lib/dpl/provider.rb
88
88
  - lib/dpl/provider/appfog.rb
89
+ - lib/dpl/provider/cloud66.rb
89
90
  - lib/dpl/provider/cloud_files.rb
90
91
  - lib/dpl/provider/cloud_foundry.rb
91
92
  - lib/dpl/provider/cloudcontrol.rb
@@ -112,6 +113,7 @@ files:
112
113
  - setuptools-3.3.zip
113
114
  - spec/cli_spec.rb
114
115
  - spec/provider/appfog_spec.rb
116
+ - spec/provider/cloud66_spec.rb
115
117
  - spec/provider/cloud_files_spec.rb
116
118
  - spec/provider/cloudcontrol_spec.rb
117
119
  - spec/provider/divshot_spec.rb