class AwsAsCode::Task::Update

Public Instance Methods

execute() click to toggle source
# File lib/aws_as_code/task/update.rb, line 8
def execute
  semaphore.wait(stack) do
    cloud_formation
      .update_stack stack_name: config.stack,
                    template_url: template_object.public_url,
                    parameters: parameters
  end
  exit_code_for_stack_state stack.reload
end

Private Instance Methods

existing_parameters() click to toggle source
# File lib/aws_as_code/task/update.rb, line 24
def existing_parameters
  keys = stack.parameters.map(&:parameter_key)
  (keys - removed_keys - overridden_keys).map do |key|
    {
      parameter_key: key,
      use_previous_value: true
    }
  end
end
overridden_keys() click to toggle source
# File lib/aws_as_code/task/update.rb, line 41
def overridden_keys
  overridden_parameters.map { |p| p[:parameter_key] }
end
overridden_parameters() click to toggle source
# File lib/aws_as_code/task/update.rb, line 45
def overridden_parameters
  config.stack_params.to_a.map do |pair|
    k, v = pair

    next nil if v.empty?

    {
      parameter_key: k.to_s,
      parameter_value: v
    }
  end.compact
end
parameters() click to toggle source
# File lib/aws_as_code/task/update.rb, line 20
def parameters
  existing_parameters + overridden_parameters
end
removed_keys() click to toggle source
# File lib/aws_as_code/task/update.rb, line 34
def removed_keys
  config.stack_params.to_a.map do |pair|
    k, v = pair
    v.empty? ? k.to_s : nil
  end.compact
end