class Roark::Aws::Ec2::DestroyAmi

Public Class Methods

new(connection) click to toggle source
# File lib/roark/aws/ec2/destroy_ami.rb, line 6
def initialize(connection)
  @connection = connection
  @logger     = Roark.logger
end

Public Instance Methods

destroy(ami_id) click to toggle source
# File lib/roark/aws/ec2/destroy_ami.rb, line 11
def destroy(ami_id)
  ami = @connection.ec2.images[ami_id]

  @block_device_mappings = ami.block_device_mappings

  @logger.info "Deleting AMI '#{ami_id}'."
  ami.delete
  delete_snapshots
end

Private Instance Methods

delete_snapshots() click to toggle source
# File lib/roark/aws/ec2/destroy_ami.rb, line 23
def delete_snapshots
  @block_device_mappings.each_value do |v|
    snapshot_id = v[:snapshot_id]
    @logger.info "Deleting snapshot '#{snapshot_id}'."
    @connection.ec2.snapshots[snapshot_id].delete
  end
end