Class: Lono::Cfn::Delete

Inherits:
Object
  • Object
show all
Includes:
AwsServices, Util
Defined in:
lib/lono/cfn/delete.rb

Instance Method Summary collapse

Methods included from Util

#are_you_sure?, #switch_current

Methods included from AwsServices

#cfn, #ec2, #iam, #s3, #s3_presigner, #s3_resource, #sts

Methods included from AwsServices::Util

#find_stack, #rollback_complete?, #stack_exists?, #testing_update?

Constructor Details

#initialize(stack_name, options = {}) ⇒ Delete

Returns a new instance of Delete.



6
7
8
9
# File 'lib/lono/cfn/delete.rb', line 6

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

Instance Method Details

#runObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/lono/cfn/delete.rb', line 11

def run
  message = "Deleting #{@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)
      return
    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

#statusObject



34
35
36
# File 'lib/lono/cfn/delete.rb', line 34

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