class Cloudformer::Tasks

CloudFormer Rake Tasks

Attributes

capabilities[RW]
disable_rollback[RW]
notify[RW]
parameters[RW]
retry_delete[RW]
tags[RW]
template[RW]

Public Class Methods

new(stack_name) { |self| ... } click to toggle source
# File lib/cloudformer/tasks.rb, line 8
def initialize(stack_name)
  @stack_name = stack_name
  @stack = Stack.new(stack_name)
  if block_given?
    yield self
    define_tasks
  end
end

Private Instance Methods

define_create_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 34
def define_create_task
  desc "Apply Stack with Cloudformation script and parameters."
  task :apply do
    retry_delete && @stack.delete
    result = @stack.apply(template, parameters, disable_rollback, capabilities, notify, tags)
    result == :Failed && exit(1)
    result == :NoUpdates && exit(0)
  end
end
define_delete_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 44
def define_delete_task
  desc "Delete stack from CloudFormation"
  task :delete do
    begin
      exit 1 unless @stack.delete
    rescue
      puts "Stack deleted successfully."
    end
  end
end
define_delete_with_stop_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 55
def define_delete_with_stop_task
  desc "Delete stack after stopping all instances"
  task :force_delete do
    begin
      @stack.stop_instances
      exit 1 unless @stack.delete
    rescue => e
      puts "Stack delete message - #{e.message}"
    end
  end
end
define_events_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 74
def define_events_task
  desc "Get the recent events from the stack."
  task :events do
    @stack.events
  end
end
define_outputs_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 81
def define_outputs_task
  desc "Get the outputs of stack."
  task :outputs do
    @stack.outputs
  end
end
define_recreate_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 88
def define_recreate_task
  desc "Recreate stack."
  task :recreate => %i[delete apply outputs]
end
define_start_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 100
def define_start_task
  desc "Start EC2 instances in stack."
  task :start do
    @stack.start_instances
  end
end
define_status_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 67
def define_status_task
  desc "Get the deployed app status."
  task :status do
    @stack.status
  end
end
define_stop_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 93
def define_stop_task
  desc "Stop EC2 instances in stack."
  task :stop do
    @stack.stop_instances
  end
end
define_tasks() click to toggle source
# File lib/cloudformer/tasks.rb, line 21
def define_tasks
  define_create_task
  define_validate_task
  define_delete_task
  define_delete_with_stop_task
  define_events_task
  define_status_task
  define_outputs_task
  define_recreate_task
  define_stop_task
  define_start_task
end
define_validate_task() click to toggle source
# File lib/cloudformer/tasks.rb, line 107
def define_validate_task
  desc "Validate the Stack."
  task :validate do
    @stack.validate(template)
  end
end