Method: Cfer::Cfn::Client#estimate

Defined in:
lib/cfer/cfn/client.rb

#estimate(stack, options = {}) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cfer/cfn/client.rb', line 35

def estimate(stack, options = {})
  estimate_options = upload_or_return_template(stack.to_cfn, options)
  response = validate_template(estimate_options)

  estimate_params = []
  response.parameters.each do |tmpl_param|
    input_param = stack.input_parameters[tmpl_param.parameter_key]
    if input_param
      output_val = tmpl_param.no_echo ? '*****' : input_param
      Cfer::LOGGER.debug "Parameter #{tmpl_param.parameter_key}=#{output_val}"
      p = {
        parameter_key: tmpl_param.parameter_key,
        parameter_value: input_param,
        use_previous_value: false
      }

      estimate_params << p
    end
  end

  estimate_response = estimate_template_cost(estimate_options.merge(parameters: estimate_params))
  estimate_response.url
end