Class: StackMaster::ParameterResolvers::StackOutput

Inherits:
Object
  • Object
show all
Defined in:
lib/stack_master/parameter_resolvers/stack_output.rb

Constant Summary collapse

StackNotFound =
Class.new(StandardError)
StackOutputNotFound =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initialize(config, stack_definition) ⇒ StackOutput

Returns a new instance of StackOutput.



7
8
9
10
11
# File 'lib/stack_master/parameter_resolvers/stack_output.rb', line 7

def initialize(config, stack_definition)
  @config = config
  @stack_definition = stack_definition
  @stacks = {}
end

Instance Method Details

#resolve(value) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/stack_master/parameter_resolvers/stack_output.rb', line 13

def resolve(value)
  validate_value!(value)
  stack_name, output_name = value.split('/')
  stack = find_stack(stack_name)
  if stack
    output = stack.outputs.find { |output| output.output_key == output_name.camelize }
    if output
      output.output_value
    else
      raise StackOutputNotFound, "Stack exists (#{stack_name}), but output does not: #{output_name}"
    end
  else
    raise StackNotFound, "Stack in StackOutput not found: #{value}"
  end
end