prof 0.32.0 → 0.33.0
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 +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
|