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 +8 -8
- data/README.md +12 -1
- data/lib/dpl/provider.rb +2 -1
- data/lib/dpl/provider/cloud66.rb +38 -0
- data/spec/provider/cloud66_spec.rb +44 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
M2VlNDc1MjE4NjE1OTg1YzY0OTZiOTQzODI3YzlmYjA1ZjMyNjhiYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MDNiZDkwZjE1Zjc0NTViNWY4YmRmNWI2NGZiNjdiNzA0MjdmNjNhMA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTg4OWNiYmQ3MDViOTBjNzg5OTJhM2FjMzhlZDlmODQxMjZkMzhjY2Q4YmU4
|
10
|
+
OWVmNmM3MGQ2ODc0OTBhMWMyNjBhNDE5M2ZiMjYyZmI1YTFiZWE4ZTgzMzhk
|
11
|
+
NzRiMDMwMGQzZmJkNzYyMjI3MzQ3YjkzOGIxNTVkN2NhZmMxYWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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.
|
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-
|
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
|