Skip to content

Commit 7ffb83b

Browse files
authored
Handle expected boolean values for waiter error matcher (#3073)
1 parent 0bbdf11 commit 7ffb83b

File tree

6 files changed

+470
-122
lines changed

6 files changed

+470
-122
lines changed

gems/aws-sdk-core/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Unreleased Changes
22
------------------
33

4+
* Issue - Update waiters to handle expected boolean values when matching errors.
5+
46
3.201.3 (2024-07-23)
57
------------------
68

gems/aws-sdk-core/lib/aws-sdk-core/waiters/poller.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def initialize(options = {})
2929
# * `:retry` - The waiter may be retried.
3030
# * `:error` - The waiter encountered an un-expected error.
3131
#
32-
# @example A trival (bad) example of a waiter that polls indefinetly.
32+
# @example A trivial (bad) example of a waiter that polls indefinetly.
3333
#
3434
# loop do
3535
#
@@ -96,8 +96,13 @@ def matches_status?(acceptor, response)
9696
end
9797

9898
def matches_error?(acceptor, response)
99-
Aws::Errors::ServiceError === response.error &&
100-
response.error.code == acceptor['expected'].delete('.')
99+
case acceptor['expected']
100+
when 'false' then response.error.nil?
101+
when 'true' then !response.error.nil?
102+
else
103+
response.error.is_a?(Aws::Errors::ServiceError) &&
104+
response.error.code == acceptor['expected'].delete('.')
105+
end
101106
end
102107

103108
def path(acceptor)
@@ -107,7 +112,7 @@ def path(acceptor)
107112
def non_empty_array(acceptor, response, &block)
108113
if response.data
109114
values = JMESPath.search(path(acceptor), response.data)
110-
Array === values && values.count > 0 ? yield(values) : false
115+
values.is_a?(Array) && values.count > 0 ? yield(values) : false
111116
else
112117
false
113118
end

0 commit comments

Comments
 (0)