oci 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/lib/oci.rb +1 -0
  4. data/lib/oci/audit/audit_client_composite_operations.rb +16 -6
  5. data/lib/oci/container_engine/container_engine.rb +47 -0
  6. data/lib/oci/container_engine/container_engine_client.rb +1276 -0
  7. data/lib/oci/container_engine/container_engine_client_composite_operations.rb +320 -0
  8. data/lib/oci/container_engine/models/add_on_options.rb +164 -0
  9. data/lib/oci/container_engine/models/cluster.rb +296 -0
  10. data/lib/oci/container_engine/models/cluster_create_options.rb +178 -0
  11. data/lib/oci/container_engine/models/cluster_endpoints.rb +146 -0
  12. data/lib/oci/container_engine/models/cluster_lifecycle_state.rb +14 -0
  13. data/lib/oci/container_engine/models/cluster_metadata.rb +262 -0
  14. data/lib/oci/container_engine/models/cluster_options.rb +150 -0
  15. data/lib/oci/container_engine/models/cluster_summary.rb +296 -0
  16. data/lib/oci/container_engine/models/create_cluster_details.rb +198 -0
  17. data/lib/oci/container_engine/models/create_cluster_kubeconfig_content_details.rb +162 -0
  18. data/lib/oci/container_engine/models/create_node_pool_details.rb +272 -0
  19. data/lib/oci/container_engine/models/key_value.rb +156 -0
  20. data/lib/oci/container_engine/models/kubernetes_network_config.rb +164 -0
  21. data/lib/oci/container_engine/models/node.rb +281 -0
  22. data/lib/oci/container_engine/models/node_error.rb +180 -0
  23. data/lib/oci/container_engine/models/node_pool.rb +306 -0
  24. data/lib/oci/container_engine/models/node_pool_options.rb +170 -0
  25. data/lib/oci/container_engine/models/node_pool_summary.rb +296 -0
  26. data/lib/oci/container_engine/models/sort_order.rb +10 -0
  27. data/lib/oci/container_engine/models/update_cluster_details.rb +160 -0
  28. data/lib/oci/container_engine/models/update_node_pool_details.rb +202 -0
  29. data/lib/oci/container_engine/models/work_request.rb +288 -0
  30. data/lib/oci/container_engine/models/work_request_error.rb +167 -0
  31. data/lib/oci/container_engine/models/work_request_log_entry.rb +156 -0
  32. data/lib/oci/container_engine/models/work_request_operation_type.rb +15 -0
  33. data/lib/oci/container_engine/models/work_request_resource.rb +214 -0
  34. data/lib/oci/container_engine/models/work_request_status.rb +14 -0
  35. data/lib/oci/container_engine/models/work_request_summary.rb +288 -0
  36. data/lib/oci/container_engine/util.rb +46 -0
  37. data/lib/oci/errors.rb +21 -2
  38. data/lib/oci/load_balancer/load_balancer_client_composite_operations.rb +336 -133
  39. data/lib/oci/load_balancer/util.rb +19 -32
  40. data/lib/oci/regions.rb +2 -1
  41. data/lib/oci/version.rb +1 -1
  42. data/lib/oci/waiter.rb +47 -0
  43. metadata +34 -2
@@ -13,43 +13,30 @@ module OCI
13
13
  # @param [Integer] max_wait_seconds The maximum total time to wait, in seconds.
14
14
  # @param [Boolean] raise_error_on_failure If true, then a WorkRequestFailedError will be
15
15
  # raised if the work request is in a failed state.
16
- # @return [WorkRequest] The final work request
16
+ # @return [OCI::Response] A {OCI::Response} object containing the completed
17
+ # {OCI::LoadBalancer::Models::WorkRequest}
17
18
  def self.wait_on_work_request(client,
18
19
  work_request_id,
19
20
  max_interval_seconds: 30,
20
21
  max_wait_seconds: 1200,
21
22
  raise_error_on_failure: true)
22
- raise 'Work request ID not specified.' unless work_request_id
23
-
24
- interval_seconds = 1
25
- start_time = Time.now
26
-
27
- loop do
28
- response = client.get_work_request(work_request_id)
29
- lifecycle_state = response.data.lifecycle_state
30
-
31
- return response.data if lifecycle_state == OCI::LoadBalancer::Models::WorkRequest::LIFECYCLE_STATE_SUCCEEDED
32
-
33
- if response.data.lifecycle_state == OCI::LoadBalancer::Models::WorkRequest::LIFECYCLE_STATE_FAILED
34
- raise OCI::Errors::WorkRequestFailedError, response.data if raise_error_on_failure
35
- return response.data
36
- end
37
-
38
- elapsed_seconds = (Time.now - start_time).to_i
39
-
40
- if elapsed_seconds + interval_seconds > max_wait_seconds
41
- raise OCI::Errors::MaximumWaitTimeExceededError, 'Maximum wait time has been exceeded.' \
42
- unless max_wait_seconds > elapsed_seconds
43
-
44
- # Make one last request right at the maximum wait time.
45
- interval_seconds = max_wait_seconds - elapsed_seconds
46
- end
47
-
48
- sleep(interval_seconds)
49
-
50
- interval_seconds *= 2
51
- interval_seconds = max_interval_seconds if interval_seconds > max_interval_seconds
52
- end
23
+ OCI::Waiter::WorkRequest.wait_for_state(
24
+ client,
25
+ work_request_id,
26
+ lambda do |work_request|
27
+ work_request.lifecycle_state == OCI::LoadBalancer::Models::WorkRequest::LIFECYCLE_STATE_SUCCEEDED
28
+ end,
29
+ lambda do |work_request|
30
+ is_failed_state = work_request.lifecycle_state == \
31
+ OCI::LoadBalancer::Models::WorkRequest::LIFECYCLE_STATE_FAILED
32
+ raise OCI::Errors::WorkRequestFailedError.new(work_request, work_request.lifecycle_state) \
33
+ if raise_error_on_failure && is_failed_state
34
+
35
+ is_failed_state
36
+ end,
37
+ max_interval_seconds: max_interval_seconds,
38
+ max_wait_seconds: max_wait_seconds
39
+ )
53
40
  end
54
41
  end
55
42
  end
@@ -29,7 +29,8 @@ module OCI
29
29
  Auth: 'auth',
30
30
  DnsClient: 'dns',
31
31
  FileStorageClient: 'filestorage',
32
- EmailClient: 'email'
32
+ EmailClient: 'email',
33
+ ContainerEngineClient: 'containerengine'
33
34
  }.freeze
34
35
 
35
36
  # Returns an endpoint for the given region and service.
@@ -1,5 +1,5 @@
1
1
  # Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
2
2
 
3
3
  module OCI
4
- VERSION = '2.2.1'.freeze
4
+ VERSION = '2.3.0'.freeze
5
5
  end
@@ -15,6 +15,53 @@ module OCI
15
15
  # waiter to fail with this exception.
16
16
  class WaiterFailedError < RuntimeError; end
17
17
  end
18
+
19
+ # Work request waiter utility method.
20
+ module WorkRequest
21
+ # Wait until the work request succeeds or fails, or max_wait_seconds is reached.
22
+ # The work request will be polled at an increasing rate, with a maximum of
23
+ # max_interval_seconds between requests.
24
+ #
25
+ # @param [Client] client A client that is able to call get_work_request()
26
+ # @param [String] work_request_id, the work request identifier
27
+ # @param [Proc] eval_success_proc the proc to evaluate if a wait condition has succeeded.
28
+ # @param [Proc] eval_error_proc the proc to evaluate if an error based terminal condition has occurred.
29
+ # @param [Integer] max_interval_seconds The maximum interval between queries, in seconds.
30
+ # @param [Integer] max_wait_seconds The maximum total time to wait, in seconds.
31
+ # @return [OCI::Response] A {OCI::Response} object containing the completed work request
32
+ def self.wait_for_state(client,
33
+ work_request_id,
34
+ eval_success_proc = nil,
35
+ eval_error_proc = nil,
36
+ max_interval_seconds: 30,
37
+ max_wait_seconds: 1200)
38
+ raise 'Work request ID not specified.' unless work_request_id
39
+ raise 'Evaluation proc for determining success not specified' unless eval_success_proc
40
+ interval_seconds = 1
41
+ start_time = Time.now
42
+
43
+ loop do
44
+ response = client.get_work_request(work_request_id)
45
+ return response if eval_success_proc && eval_success_proc.call(response.data)
46
+ return response if eval_error_proc && eval_error_proc.call(response.data)
47
+
48
+ elapsed_seconds = (Time.now - start_time).to_i
49
+
50
+ if elapsed_seconds + interval_seconds > max_wait_seconds
51
+ raise OCI::Errors::MaximumWaitTimeExceededError, 'Maximum wait time has been exceeded.' \
52
+ unless max_wait_seconds > elapsed_seconds
53
+
54
+ # Make one last request right at the maximum wait time.
55
+ interval_seconds = max_wait_seconds - elapsed_seconds
56
+ end
57
+
58
+ sleep(interval_seconds)
59
+
60
+ interval_seconds *= 2
61
+ interval_seconds = max_interval_seconds if interval_seconds > max_interval_seconds
62
+ end
63
+ end
64
+ end
18
65
  end
19
66
 
20
67
  # Adds to the Response class in lib/oci/response.rb to define wait behavior
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oci
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oracle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-31 00:00:00.000000000 Z
11
+ date: 2018-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -176,6 +176,38 @@ files:
176
176
  - "./lib/oci/base_signer.rb"
177
177
  - "./lib/oci/config.rb"
178
178
  - "./lib/oci/config_file_loader.rb"
179
+ - "./lib/oci/container_engine/container_engine.rb"
180
+ - "./lib/oci/container_engine/container_engine_client.rb"
181
+ - "./lib/oci/container_engine/container_engine_client_composite_operations.rb"
182
+ - "./lib/oci/container_engine/models/add_on_options.rb"
183
+ - "./lib/oci/container_engine/models/cluster.rb"
184
+ - "./lib/oci/container_engine/models/cluster_create_options.rb"
185
+ - "./lib/oci/container_engine/models/cluster_endpoints.rb"
186
+ - "./lib/oci/container_engine/models/cluster_lifecycle_state.rb"
187
+ - "./lib/oci/container_engine/models/cluster_metadata.rb"
188
+ - "./lib/oci/container_engine/models/cluster_options.rb"
189
+ - "./lib/oci/container_engine/models/cluster_summary.rb"
190
+ - "./lib/oci/container_engine/models/create_cluster_details.rb"
191
+ - "./lib/oci/container_engine/models/create_cluster_kubeconfig_content_details.rb"
192
+ - "./lib/oci/container_engine/models/create_node_pool_details.rb"
193
+ - "./lib/oci/container_engine/models/key_value.rb"
194
+ - "./lib/oci/container_engine/models/kubernetes_network_config.rb"
195
+ - "./lib/oci/container_engine/models/node.rb"
196
+ - "./lib/oci/container_engine/models/node_error.rb"
197
+ - "./lib/oci/container_engine/models/node_pool.rb"
198
+ - "./lib/oci/container_engine/models/node_pool_options.rb"
199
+ - "./lib/oci/container_engine/models/node_pool_summary.rb"
200
+ - "./lib/oci/container_engine/models/sort_order.rb"
201
+ - "./lib/oci/container_engine/models/update_cluster_details.rb"
202
+ - "./lib/oci/container_engine/models/update_node_pool_details.rb"
203
+ - "./lib/oci/container_engine/models/work_request.rb"
204
+ - "./lib/oci/container_engine/models/work_request_error.rb"
205
+ - "./lib/oci/container_engine/models/work_request_log_entry.rb"
206
+ - "./lib/oci/container_engine/models/work_request_operation_type.rb"
207
+ - "./lib/oci/container_engine/models/work_request_resource.rb"
208
+ - "./lib/oci/container_engine/models/work_request_status.rb"
209
+ - "./lib/oci/container_engine/models/work_request_summary.rb"
210
+ - "./lib/oci/container_engine/util.rb"
179
211
  - "./lib/oci/core/blockstorage_client.rb"
180
212
  - "./lib/oci/core/blockstorage_client_composite_operations.rb"
181
213
  - "./lib/oci/core/compute_client.rb"