Sha256: e2974088c4d3b636fa5fb67409f282310795360a67fe48a8c19c6d692ed283c5

Contents?: true

Size: 1.14 KB

Versions: 5

Compression:

Stored size: 1.14 KB

Contents

require "yaml"

class Lono::Cfn::Create < Lono::Cfn::Base
  # save_stack is the interface method
  def save_stack(params)
    create_stack(params)
  end

  # aws cloudformation create-stack --stack-name prod-hi-123456789 --parameters file://output/params/prod-hi-123456789.json --template-body file://output/prod-hi.json
  def create_stack(params)
    message = "Creating #{@stack_name.colorize(:green)} stack."
    if @options[:noop]
      puts "NOOP #{message}"
      return
    end

    if stack_exists?(@stack_name)
      puts "Cannot create #{@stack_name.colorize(:green)} stack because it already exists.".colorize(:red)
      return
    end

    unless File.exist?(@template_path)
      puts "Cannot create #{@stack_name.colorize(:green)} template not found: #{@template_path}."
      return
    end

    params = {
      stack_name: @stack_name,
      parameters: params,
      capabilities: capabilities, # ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"]
      disable_rollback: !@options[:rollback],
    }
    set_template_body!(params)

    show_parameters(params, "cfn.create_stack")
    cfn.create_stack(params)
    puts message unless @options[:mute]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lono-4.2.4 lib/lono/cfn/create.rb
lono-4.2.3 lib/lono/cfn/create.rb
lono-4.2.2 lib/lono/cfn/create.rb
lono-4.2.1 lib/lono/cfn/create.rb
lono-4.2.0 lib/lono/cfn/create.rb