Class: Lono::Cfn::Delete

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

Instance Method Summary collapse

Methods included from Utils::Sure

#sure?

Methods included from AwsServices

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

Methods included from AwsServices::Helper

#rollback_complete?, #testing_update?

Methods included from AwsServices::StackSet

#find_stack_set, #stack_set_exists?

Methods included from AwsServices::Stack

#find_stack, #stack_exists?

Constructor Details

#initialize(options = {}) ⇒ Delete

Returns a new instance of Delete.



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

def initialize(options={})
  @options = options
  @stack = options.delete(:stack)
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} stack."
  if @options[:noop]
    puts "NOOP #{message}"
  else
    sure?("Are you sure you want to delete the #{@stack} stack?")

    if stack_exists?(@stack)
      cfn.delete_stack(stack_name: @stack)
      puts message
    else
      puts "#{@stack.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)
end