dpl-cloud66 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8ce6f51f19fe1bce8f82790c0f58ff347ab61dca
4
+ data.tar.gz: 80bd22a479ecf5edfe626c05a9a1fa6c084bc1aa
5
+ SHA512:
6
+ metadata.gz: 0f1d549819f610d25dc55bfaa9eba99095b1b08deb9179356f8ae481c20e669f51d1b70c35b399a529610c216e219d2a1e8563137a1b97f85d139254d5cc1606
7
+ data.tar.gz: 816e9cb6ba4d21855dc4c08b5effb36e3ffe2a5b08d21fd5e5e2b4cbf568837beff1b060246e1eec89183c2141829a1a51c2debc7a8840ba3e1e3ac0984bfc8d
@@ -0,0 +1,3 @@
1
+ require './gemspec_helper'
2
+
3
+ gemspec_for 'cloud66'
@@ -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
+ expect(provider).to 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
+ expect(provider).to receive(:webhook_call).with('https', 'hooks.cloud66.com', 443, '/stacks/redeploy/0101010101010101').and_return(not_found_response)
28
+ expect { provider.push_app }.to 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
+ expect { provider.push_app }.to raise_error(DPL::Error, "missing redeployment_hook")
35
+ end
36
+ end
37
+ end
38
+
39
+ describe "#needs_key?" do
40
+ example do
41
+ expect(provider.needs_key?).to eq(false)
42
+ end
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,159 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dpl-cloud66
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.9.0
5
+ platform: ruby
6
+ authors:
7
+ - Konstantin Haase
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-03-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dpl
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 1.9.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 1.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-its
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: json_pure
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: tins
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: highline
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: deploy tool abstraction for clients
126
+ email: konstantin.mailinglists@googlemail.com
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - dpl-cloud66.gemspec
132
+ - lib/dpl/provider/cloud66.rb
133
+ - spec/provider/cloud66_spec.rb
134
+ homepage: https://github.com/travis-ci/dpl
135
+ licenses:
136
+ - MIT
137
+ metadata: {}
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '2.2'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements: []
153
+ rubyforge_project:
154
+ rubygems_version: 2.6.13
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: deploy tool
158
+ test_files:
159
+ - spec/provider/cloud66_spec.rb