class EC2Bootstrap::AMI
Constants
- DEFAULT_AWS_REGION
- DEFAULT_IMAGE_FILTERS
Public Class Methods
from_config(config, logger)
click to toggle source
# File lib/ec2_bootstrap/ami.rb, line 20 def self.from_config(config, logger) if config['filters'] config['filters'] = config['filters'].to_a.map {|filter| {name: filter.first, values: filter.last}} config['filters'] += DEFAULT_IMAGE_FILTERS end return self.new(config, logger) end
new(config, logger)
click to toggle source
# File lib/ec2_bootstrap/ami.rb, line 14 def initialize(config, logger) @region = config.delete('region') || DEFAULT_AWS_REGION @search_options = config @logger = logger end
Public Instance Methods
fetch_eligible_images()
click to toggle source
# File lib/ec2_bootstrap/ami.rb, line 40 def fetch_eligible_images ENV['AWS_REGION'] = @region return Aws::EC2::Resource.new.images(@search_options) end
find_newest_image_id()
click to toggle source
# File lib/ec2_bootstrap/ami.rb, line 28 def find_newest_image_id images = self.fetch_eligible_images newest_image = images.max_by{|i| Time.parse(i.creation_date)} newest_image_id = newest_image ? newest_image.id : nil @logger.error("Couldn't find any AMIs matching your specifications. Can't set a default AMI.") unless newest_image_id @logger.info("Using #{newest_image_id} as the default AMI.") if newest_image_id return newest_image_id end