Sha256: 1066ca971fbc8e1426c09127b89281aac48489ad5615a3de9451a2ae0a2cfeb7
Contents?: true
Size: 1.2 KB
Versions: 5
Compression:
Stored size: 1.2 KB
Contents
require 'bora/cfn/stack' class Bora module Resolver class Cfn StackDoesNotExist = Class.new(StandardError) ValueNotFound = Class.new(StandardError) InvalidParameter = Class.new(StandardError) def initialize(stack) @stack = stack @stack_cache = {} end def resolve(uri) stack_name = uri.host section, name = uri.path.split('/').reject(&:empty?) if !stack_name || !section || !name || section != 'outputs' raise InvalidParameter, "Invalid parameter substitution: #{uri}" end stack_name, uri_region = stack_name.split('.') region = uri_region || @stack.region param_stack = @stack_cache[stack_name] || Bora::Cfn::Stack.new(stack_name, region) unless param_stack.exists? raise StackDoesNotExist, "Output #{name} not found in stack #{stack_name} as the stack does not exist" end outputs = param_stack.outputs || [] matching_output = outputs.find { |output| output.key == name } unless matching_output raise ValueNotFound, "Output #{name} not found in stack #{stack_name}" end matching_output.value end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
bora-1.7.4 | lib/bora/resolver/cfn.rb |
bora-1.7.3 | lib/bora/resolver/cfn.rb |
bora-1.7.2 | lib/bora/resolver/cfn.rb |
bora-1.7.1 | lib/bora/resolver/cfn.rb |
bora-1.7.0 | lib/bora/resolver/cfn.rb |