Sha256: ead07941c548b7148c6a6aababc12ba52f183aa4ba2e7fcdb9b4b361fd7a6b42

Contents?: true

Size: 854 Bytes

Versions: 1

Compression:

Stored size: 854 Bytes

Contents

module Forger::Template::Helper::AmiHelper
  include Forger::AwsService

  # Example:
  #
  #   latest_ami("ruby-2.5.0_*") => ami-122
  #
  # Equivalent aws cli test command:
  #
  #   $ aws ec2 describe-images --owners self --filters="Name=name,Values=ruby-2.5.0_*" | jq '.Images | length'
  #
  # Returns latest ami ami
  def latest_ami(query, owners=["self"])
    images = search_ami(query, owners)
    image = images.sort_by(&:name).reverse.first
    if image
      image.image_id
    else
      puts "latest_ami helper method could not find an AMI with the query of: #{query.inspect}".color(:red)
      exit 1
    end
  end

  def search_ami(query, owners=["self"])
    ec2.describe_images(
      owners: owners,
      filters: [
        {name: "name", values: [query]},
        {name: "state", values: ["available"]}
      ]
    ).images
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
forger-2.0.5 lib/forger/template/helper/ami_helper.rb