MovableInkAWS 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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