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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aee7128060ef1c160ab30f71a01ba8dc906b3cc19e600ebef7b48df7d0fd29d2
4
- data.tar.gz: 36d923a0fca6ca5098f8e9dd4c12ee8257f9c0896853d56a2979e9bbe461ac5b
3
+ metadata.gz: 238d21eb16377f58da3db182b93157e34f26e05b5a12a8f233039153e581ab1a
4
+ data.tar.gz: 55249c69017ffb581c53478eedb109c026fce69fde1dec5f60580d66b42970af
5
5
  SHA512:
6
- metadata.gz: f3328245aeb3822471f9a3c52f4e015c4cb60d0ae2950c5af09dff732081b66c0409607c8e4f3d21a676e6986ba8087f7509dc62a87862cfbbf3740af5d75f6a
7
- data.tar.gz: a5decec040107d6b7240551412cc43827fdf78be921ae8eaae3fc61d419aa578d72a6af24851d8397f721e7674e03eda56cd662af8871eec9569e125a20a9199
6
+ metadata.gz: 365976f0e0e1ba918bfd8875e95e0d78d3ce59cf83ab6896b3c001250046cf5081e2cfe09b192196e01f7daef60c41523e647d720a5b8356980e2fca3900dfe2
7
+ data.tar.gz: 2fed258445a35f69973085710a2465e09845a1e98068f1f535551cefb3e1ebd11af9fdaed90781055b4757961eb107f8b92745bb4a0f3443cb25ebe95d7c8b75
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- MovableInkAWS (2.6.0)
4
+ MovableInkAWS (2.6.1)
5
5
  aws-sdk-athena (~> 1)
6
6
  aws-sdk-autoscaling (~> 1)
7
7
  aws-sdk-cloudwatch (~> 1)
@@ -3,26 +3,29 @@ require 'aws-sdk-ssm'
3
3
  module MovableInk
4
4
  class AWS
5
5
  module SSM
6
- def ssm_client
7
- @ssm_client ||= Aws::SSM::Client.new(region: 'us-east-1')
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
- @ssm_client_failover ||= Aws::SSM::Client.new(region: 'us-west-2')
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
@@ -1,5 +1,5 @@
1
1
  module MovableInk
2
2
  class AWS
3
- VERSION = '2.6.0'
3
+ VERSION = '2.6.1'
4
4
  end
5
5
  end
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.0
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-06 00:00:00.000000000 Z
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