MovableInkAWS 2.6.0 → 2.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/movable_ink/aws/ssm.rb +14 -11
- data/lib/movable_ink/version.rb +1 -1
- data/spec/ssm_spec.rb +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 238d21eb16377f58da3db182b93157e34f26e05b5a12a8f233039153e581ab1a
|
4
|
+
data.tar.gz: 55249c69017ffb581c53478eedb109c026fce69fde1dec5f60580d66b42970af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 365976f0e0e1ba918bfd8875e95e0d78d3ce59cf83ab6896b3c001250046cf5081e2cfe09b192196e01f7daef60c41523e647d720a5b8356980e2fca3900dfe2
|
7
|
+
data.tar.gz: 2fed258445a35f69973085710a2465e09845a1e98068f1f535551cefb3e1ebd11af9fdaed90781055b4757961eb107f8b92745bb4a0f3443cb25ebe95d7c8b75
|
data/Gemfile.lock
CHANGED
data/lib/movable_ink/aws/ssm.rb
CHANGED
@@ -3,26 +3,29 @@ require 'aws-sdk-ssm'
|
|
3
3
|
module MovableInk
|
4
4
|
class AWS
|
5
5
|
module SSM
|
6
|
-
|
7
|
-
|
6
|
+
|
7
|
+
def ssm_client(region = nil)
|
8
|
+
@ssm_clients_map ||= {}
|
9
|
+
@ssm_clients_map[region] ||= Aws::SSM::Client.new(region: (region.nil?) ? 'us-east-1' : region)
|
8
10
|
end
|
9
11
|
|
10
|
-
def ssm_client_failover
|
11
|
-
@
|
12
|
+
def ssm_client_failover(failregion = nil)
|
13
|
+
@ssm_failover_clients_map ||= {}
|
14
|
+
@ssm_failover_clients_map[failregion] ||= Aws::SSM::Client.new(region: (failregion.nil?) ? 'us-west-2' : failregion)
|
12
15
|
end
|
13
16
|
|
14
|
-
def run_with_backoff_and_client_fallback(&block)
|
17
|
+
def run_with_backoff_and_client_fallback(region = nil, failregion = nil, &block)
|
15
18
|
run_with_backoff do
|
16
|
-
block.call(ssm_client)
|
19
|
+
block.call(ssm_client(region))
|
17
20
|
end
|
18
21
|
rescue MovableInk::AWS::Errors::FailedWithBackoff => e
|
19
22
|
run_with_backoff(tries: 3) do
|
20
|
-
block.call(ssm_client_failover)
|
23
|
+
block.call(ssm_client_failover(failregion))
|
21
24
|
end
|
22
25
|
end
|
23
26
|
|
24
|
-
def get_secret(environment: mi_env, role:, attribute:)
|
25
|
-
run_with_backoff_and_client_fallback do |ssm|
|
27
|
+
def get_secret(environment: mi_env, role:, attribute:, region: nil, failregion: nil)
|
28
|
+
run_with_backoff_and_client_fallback(region, failregion) do |ssm|
|
26
29
|
begin
|
27
30
|
resp = ssm.get_parameter(
|
28
31
|
name: "/#{environment}/#{role}/#{attribute}",
|
@@ -35,9 +38,9 @@ module MovableInk
|
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
38
|
-
def get_role_secrets(environment: mi_env, role:)
|
41
|
+
def get_role_secrets(environment: mi_env, role:, region: nil, failregion: nil)
|
39
42
|
path = "/#{environment}/#{role}"
|
40
|
-
run_with_backoff_and_client_fallback do |ssm|
|
43
|
+
run_with_backoff_and_client_fallback(region, failregion) do |ssm|
|
41
44
|
ssm.get_parameters_by_path(
|
42
45
|
path: path,
|
43
46
|
with_decryption: true
|
data/lib/movable_ink/version.rb
CHANGED
data/spec/ssm_spec.rb
CHANGED
@@ -68,6 +68,11 @@ describe MovableInk::AWS::SSM do
|
|
68
68
|
expect(Aws::SSM::Client).to receive(:new).with({ region: 'us-east-1' })
|
69
69
|
aws.ssm_client
|
70
70
|
end
|
71
|
+
|
72
|
+
it 'Allows region to be defined as a parameter' do
|
73
|
+
expect(Aws::SSM::Client).to receive(:new).with({ region: 'us-east-2' })
|
74
|
+
aws.ssm_client('us-east-2')
|
75
|
+
end
|
71
76
|
end
|
72
77
|
|
73
78
|
describe 'ssm_client_failover' do
|
@@ -75,6 +80,11 @@ describe MovableInk::AWS::SSM do
|
|
75
80
|
expect(Aws::SSM::Client).to receive(:new).with({ region: 'us-west-2' })
|
76
81
|
aws.ssm_client_failover
|
77
82
|
end
|
83
|
+
|
84
|
+
it 'fails over to parameter defined region' do
|
85
|
+
expect(Aws::SSM::Client).to receive(:new).with({ region: 'us-west-1' })
|
86
|
+
aws.ssm_client_failover('us-west-1')
|
87
|
+
end
|
78
88
|
end
|
79
89
|
|
80
90
|
describe 'run_with_backoff_and_client_fallback' do
|
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.
|
4
|
+
version: 2.6.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: 2022-04-
|
11
|
+
date: 2022-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|