MovableInkAWS 2.6.0 → 2.6.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/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
|