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 +4 -4
- data/lib/movable_ink/aws/elasticache.rb +42 -25
- data/lib/movable_ink/version.rb +1 -1
- data/spec/elasticache_spec.rb +2 -3
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2199f122581735f27d18ce4526a774d6ba4aa0098695bd78778dc878312fb56d
|
|
4
|
+
data.tar.gz: 6a5c2f8d497bce2303652c76c2d9ef5bccc914566ee84bf90d18d5b89926592a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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(
|
|
9
|
+
def replication_group(name)
|
|
10
10
|
run_with_backoff do
|
|
11
|
-
@replication_group ||= elasticache
|
|
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(
|
|
16
|
-
replication_group(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
members
|
|
52
|
+
.select{|ng| ng.current_role == 'replica'}
|
|
53
|
+
.first
|
|
54
|
+
.read_endpoint
|
|
55
|
+
.address
|
|
40
56
|
rescue NoMethodError
|
|
41
|
-
members
|
|
42
|
-
|
|
43
|
-
|
|
57
|
+
members
|
|
58
|
+
.first
|
|
59
|
+
.read_endpoint
|
|
60
|
+
.address
|
|
44
61
|
end
|
|
45
62
|
end
|
|
46
63
|
end
|
data/lib/movable_ink/version.rb
CHANGED
data/spec/elasticache_spec.rb
CHANGED
|
@@ -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
|
-
|
|
15
|
-
|
|
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.
|
|
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-
|
|
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
|
-
|
|
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
|