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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f28d50d262d8b8224ba2d09451964fdb63dd916
4
- data.tar.gz: 77838236f26763ff9cc0dfb37e587f9ae675e24f
3
+ metadata.gz: dade8eaa281e844ba97b6a7585a538ce0d6979ca
4
+ data.tar.gz: e49902370f17f71a712bd66a7ac73a5490f0963b
5
5
  SHA512:
6
- metadata.gz: 8533e5ddd7b7ccc465096ec48789f3089328cffd63ba8c22e0de802bfb0bec94a7dfdc99071d85ab0ebd1de01bcaff915ce5b22f57362064fa6153d1b24b75f2
7
- data.tar.gz: db56ed3337f9a53ee7ef9c4c0c4ce62537cbad81c55069bad826726015a7b4e189c189f89ff00fcb07c6fe81c7518643a9ce9e82b20c35d2dc6b0005f5cf7760
6
+ metadata.gz: ac1f724bb366a27aea9a36f50bce7817c6fc710a7dfdd8a381f2e184468f79881b94acec9a75145682d23f3c6632f824ba3eac6b1019abc312e9f231eb893239
7
+ data.tar.gz: e8e441475bf7413c9e91981f8a4878e7fd56c83f044d7966a85356756deecd12ba4f44995e37ae40674b781b464b4d4f3efc03ef03829de90963035a10a08326
@@ -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
@@ -9,5 +9,5 @@
9
9
  #
10
10
 
11
11
  module Prof
12
- VERSION = '0.32.0'
12
+ VERSION = '0.33.0'
13
13
  end
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.32.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-03-02 00:00:00.000000000 Z
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.0
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.0
222
+ version: 0.9.1
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: net-ssh-gateway
225
225
  requirement: !ruby/object:Gem::Requirement