class StackMaster::Commands::Delete

Public Class Methods

new(region, stack_name, options) click to toggle source
Calls superclass method StackMaster::Command::new
# File lib/stack_master/commands/delete.rb, line 7
def initialize(region, stack_name, options)
  super(nil, nil, options)
  @region = region
  @stack_name = stack_name
  @from_time = Time.now
end

Public Instance Methods

perform() click to toggle source
# File lib/stack_master/commands/delete.rb, line 14
def perform

  return unless check_exists

  unless ask?("Really delete stack #{@stack_name} (y/n)? ")
    StackMaster.stdout.puts "Stack update aborted"
    return
  end

  delete_stack
  tail_stack_events unless StackMaster.quiet?
end

Private Instance Methods

cf() click to toggle source
# File lib/stack_master/commands/delete.rb, line 41
def cf
  StackMaster.cloud_formation_driver
end
check_exists() click to toggle source
# File lib/stack_master/commands/delete.rb, line 33
def check_exists
  cf.describe_stacks({stack_name: @stack_name})
  true
rescue Aws::CloudFormation::Errors::ValidationError
  failed("Stack does not exist")
  false
end
delete_stack() click to toggle source
# File lib/stack_master/commands/delete.rb, line 29
def delete_stack
  cf.delete_stack({stack_name: @stack_name})
end
tail_stack_events() click to toggle source
# File lib/stack_master/commands/delete.rb, line 45
def tail_stack_events
  StackEvents::Streamer.stream(@stack_name, @region, io: StackMaster.stdout, from: @from_time)
  StackMaster.stdout.puts "Stack deleted"
rescue Aws::CloudFormation::Errors::ValidationError
  # Unfortunately the stack as a tendency of going away before we get the final delete event.
  StackMaster.stdout.puts "Stack deleted"
end