Class: StackMaster::ParameterResolvers::JsonParameterStoreResolver
- Inherits:
-
Resolver
- Object
- Resolver
- StackMaster::ParameterResolvers::JsonParameterStoreResolver
- Defined in:
- lib/stack_master/parameter_resolvers/json_parameter_store_resolver.rb
Instance Method Summary collapse
-
#initialize(config, stack_definition) ⇒ JsonParameterStoreResolver
constructor
A new instance of JsonParameterStoreResolver.
- #parse_json(json, partition) ⇒ Object
- #partition_value(value) ⇒ Object
- #resolve(value) ⇒ Object
Constructor Details
#initialize(config, stack_definition) ⇒ JsonParameterStoreResolver
Returns a new instance of JsonParameterStoreResolver.
8 9 10 11 |
# File 'lib/stack_master/parameter_resolvers/json_parameter_store_resolver.rb', line 8 def initialize(config, stack_definition) @config = config @stack_definition = stack_definition end |
Instance Method Details
#parse_json(json, partition) ⇒ Object
26 27 28 |
# File 'lib/stack_master/parameter_resolvers/json_parameter_store_resolver.rb', line 26 def parse_json(json, partition) JMESPath.search(partition[:jmespath], json) end |
#partition_value(value) ⇒ Object
30 31 32 33 |
# File 'lib/stack_master/parameter_resolvers/json_parameter_store_resolver.rb', line 30 def partition_value(value) partition = value.partition('#') {parampath: partition.first, jmespath: partition.last} end |
#resolve(value) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/stack_master/parameter_resolvers/json_parameter_store_resolver.rb', line 13 def resolve(value) partition = partition_value(value) begin resp = ssm.get_parameter({ name: partition[:parampath], with_decryption: false }) rescue Aws::SSM::Errors::ParameterNotFound raise StackMaster::ParameterResolvers::ParameterStore::ParameterNotFound, "Unable to find #{partition[:parampath]} in Parameter Store" end parse_json(JSON.parse(resp.parameter.value), partition) end |