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 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