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

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
- 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