Method: Wombat::Aws#sort_images

Defined in:
lib/wombat/aws.rb

#sort_images(images) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/wombat/aws.rb', line 48

def sort_images(images)
  # P5: We prefer more recent images over older ones
  images = images.sort_by(&:creation_date).reverse
  # P4: We prefer x86_64 over i386 (if available)
  images = prefer(images) { |image| image.architecture == :x86_64 }
  # P3: We prefer gp2 (SSD) (if available)
  images = prefer(images) do |image|
    image.block_device_mappings.any? do |b|
      b.device_name == image.root_device_name && b.ebs && b.ebs.volume_type == "gp2"
    end
  end
  # P2: We prefer ebs over instance_store (if available)
  images = prefer(images) { |image| image.root_device_type == "ebs" }
  # P1: We prefer hvm (the modern standard)
  images = prefer(images) { |image| image.virtualization_type == "hvm" }
  # Grab the image from the top of the stack
  images.first
end