MovableInkAWS 2.6.3 → 2.7.1
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 +19 -19
- data/MovableInkAWS.gemspec +2 -2
- data/lib/movable_ink/aws/route53.rb +9 -7
- data/lib/movable_ink/aws.rb +7 -2
- data/lib/movable_ink/version.rb +1 -1
- data/spec/route53_spec.rb +28 -4
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bb30965f9a405275bbe54e8119bdc243bb4def14fb23af716488429639c6593
|
4
|
+
data.tar.gz: 9d31d8cde5eac0c2ae5be1673f167c2f550b2648a5593d3bc68213ce437c075d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94c2a5c1b1028585739c75c57e1a83ce5c9629539ad5c8dbb977e9b38a3abc0d9f81d47883c37a252cfe6c4dd2ee241c30349bdbf97ce0bfc37f732a8de0c6cc
|
7
|
+
data.tar.gz: a7e9c6001f0f659178b1be1f50527d7d1e7495f4220dfefb1e8d8d2df3b297a3d94af39603161205b719e62053548c3ae397300ed0998b88b9f998c984ad15af
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
MovableInkAWS (2.
|
4
|
+
MovableInkAWS (2.7.1)
|
5
5
|
aws-sdk-athena (~> 1)
|
6
6
|
aws-sdk-autoscaling (~> 1)
|
7
7
|
aws-sdk-cloudwatch (~> 1)
|
@@ -25,53 +25,53 @@ GEM
|
|
25
25
|
addressable (2.7.0)
|
26
26
|
public_suffix (>= 2.0.2, < 5.0)
|
27
27
|
aws-eventstream (1.2.0)
|
28
|
-
aws-partitions (1.
|
29
|
-
aws-sdk-athena (1.
|
28
|
+
aws-partitions (1.605.0)
|
29
|
+
aws-sdk-athena (1.54.0)
|
30
30
|
aws-sdk-core (~> 3, >= 3.127.0)
|
31
31
|
aws-sigv4 (~> 1.1)
|
32
|
-
aws-sdk-autoscaling (1.
|
32
|
+
aws-sdk-autoscaling (1.79.0)
|
33
33
|
aws-sdk-core (~> 3, >= 3.127.0)
|
34
34
|
aws-sigv4 (~> 1.1)
|
35
|
-
aws-sdk-cloudwatch (1.
|
35
|
+
aws-sdk-cloudwatch (1.64.0)
|
36
36
|
aws-sdk-core (~> 3, >= 3.127.0)
|
37
37
|
aws-sigv4 (~> 1.1)
|
38
|
-
aws-sdk-core (3.
|
38
|
+
aws-sdk-core (3.131.2)
|
39
39
|
aws-eventstream (~> 1, >= 1.0.2)
|
40
40
|
aws-partitions (~> 1, >= 1.525.0)
|
41
41
|
aws-sigv4 (~> 1.1)
|
42
|
-
jmespath (~> 1.
|
43
|
-
aws-sdk-ec2 (1.
|
42
|
+
jmespath (~> 1, >= 1.6.1)
|
43
|
+
aws-sdk-ec2 (1.321.0)
|
44
44
|
aws-sdk-core (~> 3, >= 3.127.0)
|
45
45
|
aws-sigv4 (~> 1.1)
|
46
|
-
aws-sdk-eks (1.
|
46
|
+
aws-sdk-eks (1.75.0)
|
47
47
|
aws-sdk-core (~> 3, >= 3.127.0)
|
48
48
|
aws-sigv4 (~> 1.1)
|
49
|
-
aws-sdk-elasticache (1.
|
49
|
+
aws-sdk-elasticache (1.78.0)
|
50
50
|
aws-sdk-core (~> 3, >= 3.127.0)
|
51
51
|
aws-sigv4 (~> 1.1)
|
52
|
-
aws-sdk-iam (1.
|
52
|
+
aws-sdk-iam (1.69.0)
|
53
53
|
aws-sdk-core (~> 3, >= 3.127.0)
|
54
54
|
aws-sigv4 (~> 1.1)
|
55
|
-
aws-sdk-kms (1.
|
55
|
+
aws-sdk-kms (1.57.0)
|
56
56
|
aws-sdk-core (~> 3, >= 3.127.0)
|
57
57
|
aws-sigv4 (~> 1.1)
|
58
|
-
aws-sdk-rds (1.
|
58
|
+
aws-sdk-rds (1.148.0)
|
59
59
|
aws-sdk-core (~> 3, >= 3.127.0)
|
60
60
|
aws-sigv4 (~> 1.1)
|
61
|
-
aws-sdk-route53 (1.
|
61
|
+
aws-sdk-route53 (1.63.0)
|
62
62
|
aws-sdk-core (~> 3, >= 3.127.0)
|
63
63
|
aws-sigv4 (~> 1.1)
|
64
|
-
aws-sdk-s3 (1.
|
64
|
+
aws-sdk-s3 (1.114.0)
|
65
65
|
aws-sdk-core (~> 3, >= 3.127.0)
|
66
66
|
aws-sdk-kms (~> 1)
|
67
67
|
aws-sigv4 (~> 1.4)
|
68
68
|
aws-sdk-sns (1.53.0)
|
69
69
|
aws-sdk-core (~> 3, >= 3.127.0)
|
70
70
|
aws-sigv4 (~> 1.1)
|
71
|
-
aws-sdk-ssm (1.
|
71
|
+
aws-sdk-ssm (1.137.0)
|
72
72
|
aws-sdk-core (~> 3, >= 3.127.0)
|
73
73
|
aws-sigv4 (~> 1.1)
|
74
|
-
aws-sigv4 (1.
|
74
|
+
aws-sigv4 (1.5.0)
|
75
75
|
aws-eventstream (~> 1, >= 1.0.2)
|
76
76
|
crack (0.4.3)
|
77
77
|
safe_yaml (~> 1.0.0)
|
@@ -91,7 +91,7 @@ GEM
|
|
91
91
|
mime-types-data (~> 3.2015)
|
92
92
|
mime-types-data (3.2022.0105)
|
93
93
|
multi_xml (0.6.0)
|
94
|
-
multipart-post (2.
|
94
|
+
multipart-post (2.2.3)
|
95
95
|
public_suffix (4.0.5)
|
96
96
|
rspec (3.9.0)
|
97
97
|
rspec-core (~> 3.9.0)
|
@@ -121,4 +121,4 @@ DEPENDENCIES
|
|
121
121
|
webmock
|
122
122
|
|
123
123
|
BUNDLED WITH
|
124
|
-
2.3.
|
124
|
+
2.3.14
|
data/MovableInkAWS.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.version = MovableInk::AWS::VERSION
|
7
7
|
s.summary = 'AWS Utility methods for MovableInk'
|
8
8
|
s.description = 'AWS Utility methods for MovableInk'
|
9
|
-
s.authors = ['
|
10
|
-
s.email = '
|
9
|
+
s.authors = ['MI SRE']
|
10
|
+
s.email = 'devops@movableink.com'
|
11
11
|
|
12
12
|
s.add_runtime_dependency 'aws-sdk-core', '~> 3'
|
13
13
|
s.add_runtime_dependency 'aws-sdk-athena', '~> 1'
|
@@ -13,18 +13,20 @@ module MovableInk
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def get_resource_record_sets_by_instance_name(zone, instance_name, client = nil)
|
16
|
-
resource_record_sets(zone, client).select{|rrs| rrs.set_identifier == instance_name}.
|
16
|
+
resource_record_sets(zone, client).select{|rrs| rrs.set_identifier == instance_name}.map(&:to_h)
|
17
17
|
end
|
18
18
|
|
19
19
|
def delete_resource_record_sets(zone, instance_name, client = nil)
|
20
|
-
|
21
|
-
return if
|
20
|
+
resource_record_sets = get_resource_record_sets_by_instance_name(zone, instance_name, client)
|
21
|
+
return if resource_record_sets.empty?
|
22
22
|
|
23
23
|
change_batch = {
|
24
|
-
"changes":
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
"changes": resource_record_sets.map { |resource_record_set|
|
25
|
+
{
|
26
|
+
"action": 'DELETE',
|
27
|
+
"resource_record_set": resource_record_set
|
28
|
+
}
|
29
|
+
}
|
28
30
|
}
|
29
31
|
|
30
32
|
run_with_backoff do
|
data/lib/movable_ink/aws.rb
CHANGED
@@ -36,7 +36,8 @@ module MovableInk
|
|
36
36
|
'rld' => 'us-west-2',
|
37
37
|
'dub' => 'eu-west-1',
|
38
38
|
'ord' => 'us-east-2',
|
39
|
-
'fra' => 'eu-central-1'
|
39
|
+
'fra' => 'eu-central-1',
|
40
|
+
'par' => 'eu-west-3'
|
40
41
|
}
|
41
42
|
end
|
42
43
|
end
|
@@ -99,7 +100,7 @@ module MovableInk
|
|
99
100
|
message = "#{e.class}: #{e.message}\nFrom #{$0}\n```\n#{e.backtrace.first(3).join("\n").gsub("`","'")}\n```"
|
100
101
|
notify_slack(subject: 'Unhandled AWS API Error', message: message)
|
101
102
|
puts message
|
102
|
-
raise MovableInk::AWS::Errors::ServiceError
|
103
|
+
raise MovableInk::AWS::Errors::ServiceError.new("#{e.class}: #{e.message}")
|
103
104
|
end
|
104
105
|
end
|
105
106
|
message = "From: #{$0}\n```\n#{Thread.current.backtrace.first(3).join("\n").gsub("`","'")}\n```"
|
@@ -112,6 +113,10 @@ module MovableInk
|
|
112
113
|
self.class.regions
|
113
114
|
end
|
114
115
|
|
116
|
+
def my_aws_account_id
|
117
|
+
@my_aws_account_id ||= instance_identity_document['accountId'].to_i
|
118
|
+
end
|
119
|
+
|
115
120
|
def my_region
|
116
121
|
@my_region ||= if ENV['AWS_REGION'].nil?
|
117
122
|
availability_zone.chop
|
data/lib/movable_ink/version.rb
CHANGED
data/spec/route53_spec.rb
CHANGED
@@ -15,6 +15,11 @@ describe MovableInk::AWS::Route53 do
|
|
15
15
|
name: 'host2.domain.tld.',
|
16
16
|
set_identifier: '10_0_0_2',
|
17
17
|
type: '???'
|
18
|
+
},
|
19
|
+
{
|
20
|
+
name: 'host2-other.domain.tld.',
|
21
|
+
set_identifier: '10_0_0_2',
|
22
|
+
type: '???'
|
18
23
|
}
|
19
24
|
])
|
20
25
|
}
|
@@ -23,12 +28,23 @@ describe MovableInk::AWS::Route53 do
|
|
23
28
|
route53.stub_responses(:list_resource_record_sets, rrset_data)
|
24
29
|
allow(aws).to receive(:route53).and_return(route53)
|
25
30
|
|
26
|
-
expect(aws.resource_record_sets('Z123').count).to eq(
|
27
|
-
expect(aws.resource_record_sets('Z123').
|
28
|
-
expect(aws.resource_record_sets('Z123').
|
31
|
+
expect(aws.resource_record_sets('Z123').count).to eq(3)
|
32
|
+
expect(aws.resource_record_sets('Z123')[0].name).to eq('host1.domain.tld.')
|
33
|
+
expect(aws.resource_record_sets('Z123')[1].name).to eq('host2.domain.tld.')
|
34
|
+
expect(aws.resource_record_sets('Z123')[2].name).to eq('host2-other.domain.tld.')
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns all sets with an identifier" do
|
38
|
+
route53.stub_responses(:list_resource_record_sets, rrset_data)
|
39
|
+
allow(aws).to receive(:route53).and_return(route53)
|
40
|
+
|
41
|
+
sets = aws.get_resource_record_sets_by_instance_name('Z123', '10_0_0_2')
|
42
|
+
expect(sets.count).to eq(2)
|
43
|
+
expect(sets[0][:name]).to eq('host2.domain.tld.')
|
44
|
+
expect(sets[1][:name]).to eq('host2-other.domain.tld.')
|
29
45
|
end
|
30
46
|
|
31
|
-
it 'deletes
|
47
|
+
it 'deletes rrsets that exist under the same identifier' do
|
32
48
|
route53.stub_responses(:list_resource_record_sets, rrset_data)
|
33
49
|
allow(aws).to receive(:route53).and_return(route53)
|
34
50
|
|
@@ -41,6 +57,14 @@ describe MovableInk::AWS::Route53 do
|
|
41
57
|
type: "???",
|
42
58
|
set_identifier: "10_0_0_2"
|
43
59
|
}
|
60
|
+
},
|
61
|
+
{
|
62
|
+
action: "DELETE",
|
63
|
+
resource_record_set: {
|
64
|
+
name: "host2-other.domain.tld.",
|
65
|
+
type: "???",
|
66
|
+
set_identifier: "10_0_0_2"
|
67
|
+
}
|
44
68
|
}]
|
45
69
|
},
|
46
70
|
hosted_zone_id: "Z123"
|
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.
|
4
|
+
version: 2.7.1
|
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-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|
@@ -235,7 +235,7 @@ dependencies:
|
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: 2.4.2
|
237
237
|
description: AWS Utility methods for MovableInk
|
238
|
-
email:
|
238
|
+
email: devops@movableink.com
|
239
239
|
executables: []
|
240
240
|
extensions: []
|
241
241
|
extra_rdoc_files: []
|