MovableInkAWS 2.7.1 → 2.7.2

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
  SHA256:
3
- metadata.gz: 4bb30965f9a405275bbe54e8119bdc243bb4def14fb23af716488429639c6593
4
- data.tar.gz: 9d31d8cde5eac0c2ae5be1673f167c2f550b2648a5593d3bc68213ce437c075d
3
+ metadata.gz: 062a7d89881a8deb80193260cee046fd05bc2f354614b4184c9b4f219e6bbfb5
4
+ data.tar.gz: 2f539ce1e8ffe789ac796f13eb0626eeb7beed534bb2487dd2962341eadfffe3
5
5
  SHA512:
6
- metadata.gz: 94c2a5c1b1028585739c75c57e1a83ce5c9629539ad5c8dbb977e9b38a3abc0d9f81d47883c37a252cfe6c4dd2ee241c30349bdbf97ce0bfc37f732a8de0c6cc
7
- data.tar.gz: a7e9c6001f0f659178b1be1f50527d7d1e7495f4220dfefb1e8d8d2df3b297a3d94af39603161205b719e62053548c3ae397300ed0998b88b9f998c984ad15af
6
+ metadata.gz: 5a8aaca866b301926dd14e435dc811d1b20d99e78f5e3a91a40a3d6e0258c07df66d15e74d69123e2548272fb89ce64763d2a5eac010b8a137556fd44c69511f
7
+ data.tar.gz: e9b2eac205025b400cea11b4692be05ec2e5e6ceca621187d0e8151fbab6996351b2ca2d4bfa4ccbcd7b65ec2fd564a6ecdd54cbe9daf78cfd57c59feff0a319
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- MovableInkAWS (2.7.1)
4
+ MovableInkAWS (2.7.2)
5
5
  aws-sdk-athena (~> 1)
6
6
  aws-sdk-autoscaling (~> 1)
7
7
  aws-sdk-cloudwatch (~> 1)
@@ -8,6 +8,21 @@ module MovableInk
8
8
  class InvalidDiscoveryTypeError < StandardError; end
9
9
  class RoleNameRequiredError < StandardError; end
10
10
  class RoleNameInvalidError < StandardError; end
11
+
12
+ class ExpectedError
13
+ def initialize(error_class, message_patterns = [])
14
+ @error_class = error_class
15
+ message_patterns.each { |pattern| raise StandardError.new("Invalid message pattern provided #{pattern.inspect}") unless pattern.class == Regexp }
16
+ @message_patterns = message_patterns
17
+ end
18
+
19
+ def match?(exception)
20
+ return false unless exception.class == @error_class
21
+ return true if @message_patterns.length == 0
22
+ @message_patterns.each {|pattern| return true if exception.message.match(pattern) }
23
+ false
24
+ end
25
+ end
11
26
  end
12
27
  end
13
28
  end
@@ -16,7 +16,7 @@ module MovableInk
16
16
  resource_record_sets(zone, client).select{|rrs| rrs.set_identifier == instance_name}.map(&:to_h)
17
17
  end
18
18
 
19
- def delete_resource_record_sets(zone, instance_name, client = nil)
19
+ def delete_resource_record_sets(zone, instance_name, client = nil, expected_errors = [])
20
20
  resource_record_sets = get_resource_record_sets_by_instance_name(zone, instance_name, client)
21
21
  return if resource_record_sets.empty?
22
22
 
@@ -29,7 +29,7 @@ module MovableInk
29
29
  }
30
30
  }
31
31
 
32
- run_with_backoff do
32
+ run_with_backoff(expected_errors: expected_errors) do
33
33
  route53(client).change_resource_record_sets({change_batch: change_batch, hosted_zone_id: zone})
34
34
  end
35
35
  end
@@ -61,7 +61,8 @@ module MovableInk
61
61
  end
62
62
  end
63
63
 
64
- def run_with_backoff(quiet: false, tries: 9)
64
+ # exected_errors[0].class == MovableInk::AWS::ExpectedError
65
+ def run_with_backoff(quiet: false, tries: 9, expected_errors: [])
65
66
  tries.times do |num|
66
67
  begin
67
68
  return yield
@@ -97,6 +98,7 @@ module MovableInk
97
98
  notify_and_sleep(sleep_time, $!.class)
98
99
  end
99
100
  rescue Aws::Errors::ServiceError => e
101
+ expected_errors.each {|expected_error| return if expected_error.match?(e) }
100
102
  message = "#{e.class}: #{e.message}\nFrom #{$0}\n```\n#{e.backtrace.first(3).join("\n").gsub("`","'")}\n```"
101
103
  notify_slack(subject: 'Unhandled AWS API Error', message: message)
102
104
  puts message
@@ -1,5 +1,5 @@
1
1
  module MovableInk
2
2
  class AWS
3
- VERSION = '2.7.1'
3
+ VERSION = '2.7.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: MovableInkAWS
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1
4
+ version: 2.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - MI SRE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-20 00:00:00.000000000 Z
11
+ date: 2022-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core