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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/movable_ink/aws/errors.rb +15 -0
- data/lib/movable_ink/aws/route53.rb +2 -2
- data/lib/movable_ink/aws.rb +3 -1
- data/lib/movable_ink/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 062a7d89881a8deb80193260cee046fd05bc2f354614b4184c9b4f219e6bbfb5
|
4
|
+
data.tar.gz: 2f539ce1e8ffe789ac796f13eb0626eeb7beed534bb2487dd2962341eadfffe3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a8aaca866b301926dd14e435dc811d1b20d99e78f5e3a91a40a3d6e0258c07df66d15e74d69123e2548272fb89ce64763d2a5eac010b8a137556fd44c69511f
|
7
|
+
data.tar.gz: e9b2eac205025b400cea11b4692be05ec2e5e6ceca621187d0e8151fbab6996351b2ca2d4bfa4ccbcd7b65ec2fd564a6ecdd54cbe9daf78cfd57c59feff0a319
|
data/Gemfile.lock
CHANGED
@@ -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
|
data/lib/movable_ink/aws.rb
CHANGED
@@ -61,7 +61,8 @@ module MovableInk
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
|
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
|
data/lib/movable_ink/version.rb
CHANGED
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.
|
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-
|
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
|