Sha256: 73cb6960cea3fd797482130de9cd238ac80d00b40a456b2403e4424ce4f164ef

Contents?: true

Size: 945 Bytes

Versions: 3

Compression:

Stored size: 945 Bytes

Contents

class Lono::Cfn::Delete
  include Lono::Cfn::AwsService
  include Lono::Cfn::Util

  def initialize(stack_name, options={})
    @stack_name = switch_current(stack_name)
    @options = options
  end

  def run
    message = "Deleted #{@stack_name} stack."
    if @options[:noop]
      puts "NOOP #{message}"
    else
      are_you_sure?(@stack_name, :delete)

      if stack_exists?(@stack_name)
        cfn.delete_stack(stack_name: @stack_name)
        puts message
      else
        puts "#{@stack_name.inspect} stack does not exist".color(:red)
      end
    end

    return unless @options[:wait]
    start_time = Time.now
    status.wait unless @options[:noop]
    took = Time.now - start_time
    puts "Time took for stack deletion: #{status.pretty_time(took).color(:green)}."
  end

  def status
    @status ||= Lono::Cfn::Status.new(@stack_name)
  end

  def switch_current(stack_name)
    Lono::Cfn::Current.name!(stack_name)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lono-4.2.7 lib/lono/cfn/delete.rb
lono-4.2.6 lib/lono/cfn/delete.rb
lono-4.2.5 lib/lono/cfn/delete.rb