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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e7ad037cd5628c4064e602e7818305adf691666f178b1cba16f967c17021b1d
4
- data.tar.gz: 7f6fbc76c3c7669aadd15682cd806c2e3268f39cd74dd395913910aa01b826f7
3
+ metadata.gz: 4bb30965f9a405275bbe54e8119bdc243bb4def14fb23af716488429639c6593
4
+ data.tar.gz: 9d31d8cde5eac0c2ae5be1673f167c2f550b2648a5593d3bc68213ce437c075d
5
5
  SHA512:
6
- metadata.gz: 73af21192d6d001442427ed83f21e18b7aee0e214243b6e8572d1ca51f2b9d15a562e14435f666737f6158651285c2a95ac59f3c7a38d8a7539404a4f24a2559
7
- data.tar.gz: 0cc73c99406611d2d6482149eea67a8c235b7b5caa0dd7d366ac0e6256c5a2b8faae3de6e83350ff71a464cac40f2b518c6b7a5b72e80613af8a8ee8042352c3
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.6.3)
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.573.0)
29
- aws-sdk-athena (1.52.0)
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.78.0)
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.62.0)
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.130.0)
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.0)
43
- aws-sdk-ec2 (1.305.0)
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.74.0)
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.76.0)
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.68.0)
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.0)
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.142.0)
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.62.0)
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.113.0)
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.134.0)
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.4.0)
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.1.1)
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.11
124
+ 2.3.14
@@ -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 = ['Matt Chesler']
10
- s.email = 'mchesler@movableink.com'
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}.first.to_h
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
- resource_record_set = get_resource_record_sets_by_instance_name(zone, instance_name, client)
21
- return if resource_record_set.empty?
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
- "action": 'DELETE',
26
- "resource_record_set": resource_record_set
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
@@ -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
@@ -1,5 +1,5 @@
1
1
  module MovableInk
2
2
  class AWS
3
- VERSION = '2.6.3'
3
+ VERSION = '2.7.1'
4
4
  end
5
5
  end
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(2)
27
- expect(aws.resource_record_sets('Z123').first.name).to eq('host1.domain.tld.')
28
- expect(aws.resource_record_sets('Z123').last.name).to eq('host2.domain.tld.')
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 a rrset that exists' do
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.6.3
4
+ version: 2.7.1
5
5
  platform: ruby
6
6
  authors:
7
- - Matt Chesler
7
+ - MI SRE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-12 00:00:00.000000000 Z
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: mchesler@movableink.com
238
+ email: devops@movableink.com
239
239
  executables: []
240
240
  extensions: []
241
241
  extra_rdoc_files: []