MovableInkAWS 0.3.0 → 0.3.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: d362679456a51366b015bb76f2c7f8e578acc5d6f6d21d8e05bc2f4794842205
4
- data.tar.gz: 879834f53d480a7e9fe5ca0f11daff419828525a78fb98bb7a6c1de8a744078d
3
+ metadata.gz: 2199f122581735f27d18ce4526a774d6ba4aa0098695bd78778dc878312fb56d
4
+ data.tar.gz: 6a5c2f8d497bce2303652c76c2d9ef5bccc914566ee84bf90d18d5b89926592a
5
5
  SHA512:
6
- metadata.gz: 05d9112da634b7ddec10dfaae68d70875f3832f4768dfa6bb279e315d63b50ff34b3f1bcd15643cff04eaca097b2c28da4c9a4321add29dccee00b90dd73572d
7
- data.tar.gz: 3393a133714eb6bce8dce30195a0e6fdf20128129a32bf0bc1c67d9477e911f06eabe61765a8cea269bcea20e985957e46d8048ce2b80f7335f37b85e77e25a5
6
+ metadata.gz: bdbe5cf3e182d77d9311cef5daa2cd27e70f2c28ead3f20c677fc8264ad61e17e36471b5f69c618e05565046a22b3aa42888ac0224dc011a768cc8ba028c01a8
7
+ data.tar.gz: 426564c0bea55d42970857c60db226f37cebe62b01eae68ba5f3eda89db8e07b6a6e2a8b69ea541e770186f3807ac1050d40e8b4feb7a5a8d2df865a4761ccd6
@@ -6,41 +6,58 @@ module MovableInk
6
6
  @elasticache_client[region] ||= Aws::ElastiCache::Client.new(region: region)
7
7
  end
8
8
 
9
- def replication_group(role)
9
+ def replication_group(name)
10
10
  run_with_backoff do
11
- @replication_group ||= elasticache.describe_replication_groups({replication_group_id: "#{mi_env}-#{role}"}).replication_groups.first
11
+ @replication_group ||= elasticache
12
+ .describe_replication_groups(replication_group_id: name)
13
+ .replication_groups
14
+ .first
12
15
  end
13
16
  end
14
17
 
15
- def elasticache_primary(role)
16
- replication_group(role).node_groups
17
- .first
18
- .primary_endpoint
19
- .address
18
+ def elasticache_primary(name)
19
+ replication_group(name)
20
+ .node_groups
21
+ .first
22
+ .primary_endpoint
23
+ .address
24
+ end
25
+
26
+ def node_group_members(name)
27
+ replication_group(name)
28
+ .node_groups
29
+ .first
30
+ .node_group_members
20
31
  end
21
32
 
22
- def all_elasticache_replicas(role)
23
- replication_group(role).node_groups
24
- .first
25
- .node_group_members
26
- .select{|ng| ng.current_role == 'replica'}
27
- .map{|member| member.read_endpoint.address}
33
+ def node_group_members_in_my_az(name)
34
+ node_group_members(name)
35
+ .select { |ng| ng.preferred_availability_zone == availability_zone }
28
36
  end
29
37
 
30
- def elasticache_replica_in_my_az(role)
31
- members = replication_group(role).node_groups
32
- .first
33
- .node_group_members
34
- .select{|ng| ng.preferred_availability_zone == availability_zone}
38
+ def elasticache_replicas(name)
39
+ node_group_members(name)
40
+ .select { |ng| ng.current_role == 'replica' }
41
+ end
42
+
43
+ def all_elasticache_replicas(name)
44
+ elasticache_replicas(name)
45
+ .map { |replica| replica.read_endpoint.address }
46
+ end
47
+
48
+ def elasticache_replica_in_my_az(name)
49
+ members = node_group_members_in_my_az(name)
35
50
  begin
36
- members.select{|ng| ng.current_role == 'replica'}
37
- .first
38
- .read_endpoint
39
- .address
51
+ members
52
+ .select{|ng| ng.current_role == 'replica'}
53
+ .first
54
+ .read_endpoint
55
+ .address
40
56
  rescue NoMethodError
41
- members.first
42
- .read_endpoint
43
- .address
57
+ members
58
+ .first
59
+ .read_endpoint
60
+ .address
44
61
  end
45
62
  end
46
63
  end
@@ -1,5 +1,5 @@
1
1
  module MovableInk
2
2
  class AWS
3
- VERSION = '0.3.0'
3
+ VERSION = '0.3.1'
4
4
  end
5
5
  end
@@ -11,8 +11,8 @@ describe MovableInk::AWS::ElastiCache do
11
11
  primary_endpoint: {address: 'primary'},
12
12
  node_group_members: [
13
13
  {preferred_availability_zone: 'us-foo-1a',
14
- read_endpoint: {address: 'address-1a'},
15
- current_role: 'replica' },
14
+ read_endpoint: {address: 'address-1a'},
15
+ current_role: 'replica' },
16
16
  {preferred_availability_zone: 'us-foo-1a',
17
17
  read_endpoint: {address: 'address-1a-primary'},
18
18
  current_role: 'primary' },
@@ -29,7 +29,6 @@ describe MovableInk::AWS::ElastiCache do
29
29
 
30
30
  before(:each) do
31
31
  elasticache.stub_responses(:describe_replication_groups, replication_group)
32
- allow(aws).to receive(:mi_env).and_return('test')
33
32
  allow(aws).to receive(:elasticache).and_return(elasticache)
34
33
  end
35
34
 
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: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Chesler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-29 00:00:00.000000000 Z
11
+ date: 2019-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
@@ -72,7 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  requirements: []
75
- rubygems_version: 3.0.3
75
+ rubyforge_project:
76
+ rubygems_version: 2.7.7
76
77
  signing_key:
77
78
  specification_version: 4
78
79
  summary: AWS Utility methods for MovableInk