prof 0.32.0 → 0.33.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/prof/cloud_foundry.rb +20 -13
- data/lib/prof/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dade8eaa281e844ba97b6a7585a538ce0d6979ca
|
4
|
+
data.tar.gz: e49902370f17f71a712bd66a7ac73a5490f0963b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac1f724bb366a27aea9a36f50bce7817c6fc710a7dfdd8a381f2e184468f79881b94acec9a75145682d23f3c6632f824ba3eac6b1019abc312e9f231eb893239
|
7
|
+
data.tar.gz: e8e441475bf7413c9e91981f8a4878e7fd56c83f044d7966a85356756deecd12ba4f44995e37ae40674b781b464b4d4f3efc03ef03829de90963035a10a08326
|
data/lib/prof/cloud_foundry.rb
CHANGED
@@ -19,7 +19,7 @@ module Prof
|
|
19
19
|
class CloudFoundry
|
20
20
|
extend Forwardable
|
21
21
|
|
22
|
-
attr_reader :api_url, :domain, :username, :password
|
22
|
+
attr_reader :api_url, :domain, :username, :password, :retry_timeout, :retry_interval
|
23
23
|
|
24
24
|
def_delegators :hula_cloud_foundry,
|
25
25
|
:add_public_service_broker,
|
@@ -47,6 +47,11 @@ module Prof
|
|
47
47
|
@api_url = opts.fetch(:api_url) { "https://api.#{domain}" }
|
48
48
|
@username = opts.fetch(:username)
|
49
49
|
@password = opts.fetch(:password)
|
50
|
+
|
51
|
+
@retry_interval = opts.fetch(:retry_interval) { 5 }
|
52
|
+
@retry_timeout = opts.fetch(:retry_timeout) { 720 }
|
53
|
+
|
54
|
+
@hula_cloud_foundry = opts.fetch(:hula_cloud_foundry) if opts.key?(:hula_cloud_foundry)
|
50
55
|
end
|
51
56
|
|
52
57
|
def push_and_keep_app(app, pushed_app_name = "cf-app-#{SecureRandom.hex(4)}")
|
@@ -110,24 +115,12 @@ module Prof
|
|
110
115
|
|
111
116
|
def provision_and_create_service_key(service, &_block)
|
112
117
|
provision_service(service) do |service_instance|
|
113
|
-
wait_for_service_creation(service_instance)
|
114
118
|
create_service_key(service_instance) do |service_key, service_key_data|
|
115
119
|
yield service_instance, service_key, service_key_data
|
116
120
|
end
|
117
121
|
end
|
118
122
|
end
|
119
123
|
|
120
|
-
def wait_for_service_creation(service_instance)
|
121
|
-
Timeout::timeout(12 * 60) do
|
122
|
-
loop do
|
123
|
-
status = hula_cloud_foundry.get_service_status(service_instance.name)
|
124
|
-
return if status == 'create succeeded'
|
125
|
-
raise "service instance creation failed: #{service_instance.name}" if status.include? 'failed'
|
126
|
-
sleep 5
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
124
|
def list_service_keys(service_instance)
|
132
125
|
hula_cloud_foundry.list_service_keys(service_instance.name)
|
133
126
|
end
|
@@ -160,6 +153,7 @@ module Prof
|
|
160
153
|
service_instance = ServiceInstance.new
|
161
154
|
|
162
155
|
hula_cloud_foundry.create_service_instance(service.name, service_instance.name, service.plan)
|
156
|
+
wait_for_service_state(service_instance, "create succeeded", "create failed")
|
163
157
|
|
164
158
|
yield service_instance if block_given?
|
165
159
|
|
@@ -169,6 +163,8 @@ module Prof
|
|
169
163
|
|
170
164
|
def delete_service_instance_and_unbind(service_instance, options = {})
|
171
165
|
hula_cloud_foundry.delete_service_instance_and_unbind(service_instance.name, options)
|
166
|
+
|
167
|
+
wait_for_service_state(service_instance, "Service instance #{service_instance.name} not found", "delete failed")
|
172
168
|
end
|
173
169
|
|
174
170
|
def auth_token
|
@@ -177,6 +173,17 @@ module Prof
|
|
177
173
|
|
178
174
|
private
|
179
175
|
|
176
|
+
def wait_for_service_state(service_instance, expected_state, failure_state)
|
177
|
+
Timeout::timeout(retry_timeout) do
|
178
|
+
loop do
|
179
|
+
status = hula_cloud_foundry.get_service_status(service_instance.name)
|
180
|
+
return if status.include? expected_state
|
181
|
+
raise "Error #{failure_state} occured for service instance: #{service_instance.name}" if status.include? failure_state
|
182
|
+
sleep retry_interval
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
180
187
|
def hula_cloud_foundry
|
181
188
|
@hula_cloud_foundry ||= Hula::CloudFoundry.new(
|
182
189
|
api_url: api_url,
|
data/lib/prof/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CF London
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gem-release
|
@@ -212,14 +212,14 @@ dependencies:
|
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: 0.9.
|
215
|
+
version: 0.9.1
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.9.
|
222
|
+
version: 0.9.1
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: net-ssh-gateway
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|