knowledge-ssm 0.1.1 → 0.1.2
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/knowledge/adapters/ssm.rb +48 -22
- data/lib/knowledge/ssm.rb +2 -2
- data/lib/knowledge/ssm/version.rb +1 -1
- 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: ff1d12d1fcdad26b496cdc51abdb22dc98528f518338a9ee1959b8792da4ee10
|
4
|
+
data.tar.gz: '00866e3590c120a8c2d7d6500186012d2850f6eb06a9cafc254741cecdcab2de'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 789883aa2ef2ea21e993e1e8dfac6de5016196ba3ba6636b69f411b94e41e8d1d4746e1753788f5fa337ea1947d7f443d700b9dee91ddf11f42191b9348753a3
|
7
|
+
data.tar.gz: 79065e2c1d9b2510e4a70520805732a9f5675b85f1613da6252c3ec5effa6e9ac44aa104a74584d64d60640d495649d046fa070ddb95735ddba2906899a5a616
|
@@ -9,18 +9,18 @@ end
|
|
9
9
|
module Knowledge
|
10
10
|
module Adapters
|
11
11
|
#
|
12
|
-
# === Description
|
12
|
+
# === Description
|
13
13
|
#
|
14
14
|
# This adapter takes some vars in your SSM parameters and set it in your project's config.
|
15
15
|
#
|
16
|
-
# === Usage
|
16
|
+
# === Usage
|
17
17
|
#
|
18
18
|
# @example:
|
19
19
|
# adapter = Knowledge::Adapters::Ssm.new(params: { root_path: '/path', setter: MySetter, variables: my_vars)
|
20
20
|
#
|
21
21
|
# adapter.run
|
22
22
|
#
|
23
|
-
# === Attributes
|
23
|
+
# === Attributes
|
24
24
|
#
|
25
25
|
# @attr_reader [Boolean] raise_not_found
|
26
26
|
# @attr_reader [String] root_path
|
@@ -30,9 +30,18 @@ module Knowledge
|
|
30
30
|
#
|
31
31
|
class Ssm < Base
|
32
32
|
# == Attributes ==================================================================================================
|
33
|
-
|
33
|
+
|
34
|
+
# Defines whether we should raise an error on param not found or not
|
35
|
+
attr_reader :raise_not_found
|
36
|
+
|
37
|
+
# Root path for SSM parameters
|
38
|
+
attr_reader :root_path
|
39
|
+
|
40
|
+
# Parameters to fetch
|
41
|
+
attr_reader :ssm_parameters
|
34
42
|
|
35
43
|
# == Constructor =================================================================================================
|
44
|
+
|
36
45
|
#
|
37
46
|
# @param [Hash] :params
|
38
47
|
# @option params [Aws::SSM::Client] :client
|
@@ -51,35 +60,32 @@ module Knowledge
|
|
51
60
|
end
|
52
61
|
|
53
62
|
# == Instance Methods ============================================================================================
|
54
|
-
|
55
|
-
# === Description ===
|
63
|
+
|
56
64
|
#
|
57
65
|
# Runs the actual adapter.
|
58
66
|
#
|
59
67
|
def run
|
60
|
-
variables.each do |name, path|
|
68
|
+
variables.each do |name, (path, default_value)|
|
61
69
|
base_path = root_path[0..-2] if root_path&.end_with?('/')
|
62
70
|
path = "/#{path.sub('/', '')}"
|
63
71
|
value = Array(@ssm_parameters).detect { |p| p.name == "#{base_path}#{path}" }&.value
|
64
72
|
|
65
|
-
setter.set(name: name, value: value)
|
73
|
+
setter.set(name: name, value: extract_value(value, default_value))
|
66
74
|
end
|
67
75
|
end
|
68
76
|
|
69
77
|
protected
|
70
78
|
|
71
|
-
#
|
72
|
-
# === Description ===
|
73
79
|
#
|
74
80
|
# Credentials for AWS should be loaded from the ENV vars by the client itself.
|
75
81
|
# Authorization is done automatically according to the current AWS policies.
|
76
82
|
#
|
77
|
-
# === Errors
|
83
|
+
# === Errors
|
78
84
|
#
|
79
85
|
# @raise [Aws::SSM::Errors::UnrecognizedClientException]
|
80
86
|
# @raise [Aws::SSM::AccessDeniedException]
|
81
87
|
#
|
82
|
-
# === Parameters
|
88
|
+
# === Parameters
|
83
89
|
#
|
84
90
|
# @return [Aws::SSM::Client]
|
85
91
|
#
|
@@ -88,11 +94,35 @@ module Knowledge
|
|
88
94
|
end
|
89
95
|
|
90
96
|
#
|
91
|
-
#
|
97
|
+
# Fallbacks to the default value if the value is empty
|
98
|
+
#
|
99
|
+
# === Parameters
|
100
|
+
#
|
101
|
+
# @attr [Any] initial_value
|
102
|
+
# @attr [Any] default_value
|
103
|
+
#
|
104
|
+
# @return [Any] the value or the default
|
105
|
+
#
|
106
|
+
def extract_value(initial_value, default_value = nil)
|
107
|
+
# If no default value given
|
108
|
+
return initial_value if default_value.nil?
|
109
|
+
|
110
|
+
# If boolean value
|
111
|
+
return initial_value if initial_value == !!initial_value
|
112
|
+
|
113
|
+
# If number
|
114
|
+
return initial_value if initial_value.respond_to?(:to_f) && initial_value.to_f == initial_value
|
115
|
+
|
116
|
+
# If initial value nil or empty
|
117
|
+
return default_value if initial_value.nil? || (initial_value.respond_to?(:empty?) && initial_value.empty?)
|
118
|
+
|
119
|
+
initial_value
|
120
|
+
end
|
121
|
+
|
92
122
|
#
|
93
123
|
# Fetches parameters one by one on SSM according to their specific path
|
94
124
|
#
|
95
|
-
# === Parameters
|
125
|
+
# === Parameters
|
96
126
|
#
|
97
127
|
# @return [Array<Aws::SSM::Types::Parameter>]
|
98
128
|
#
|
@@ -100,16 +130,14 @@ module Knowledge
|
|
100
130
|
variables.map { |_name, path| fetch_parameter(path: path) }.compact
|
101
131
|
end
|
102
132
|
|
103
|
-
#
|
104
|
-
# === Description ===
|
105
133
|
#
|
106
134
|
# Recursively fetches parameters on SSM according to the given path
|
107
135
|
#
|
108
|
-
# === Errors
|
136
|
+
# === Errors
|
109
137
|
#
|
110
138
|
# @raise [Knowledge::SsmError]
|
111
139
|
#
|
112
|
-
# === Parameters
|
140
|
+
# === Parameters
|
113
141
|
#
|
114
142
|
# @return [Array<Aws::SSM::Types::Parameter>]
|
115
143
|
#
|
@@ -135,16 +163,14 @@ module Knowledge
|
|
135
163
|
raise ::Knowledge::SsmError, "[#{e.class}]: #{e.message}"
|
136
164
|
end
|
137
165
|
|
138
|
-
#
|
139
|
-
# === Description ===
|
140
166
|
#
|
141
167
|
# Fetches a parameter by its path on SSM
|
142
168
|
#
|
143
|
-
# === Error
|
169
|
+
# === Error
|
144
170
|
#
|
145
171
|
# @raise [Knowledge::SsmError]
|
146
172
|
#
|
147
|
-
# === Parameters
|
173
|
+
# === Parameters
|
148
174
|
#
|
149
175
|
# @param [String] :path
|
150
176
|
#
|
data/lib/knowledge/ssm.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knowledge-ssm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johann Wilfrid-Calixte
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: knowledge
|