Class: StackMaster::ParameterResolvers::AmiFinder
- Inherits:
-
Object
- Object
- StackMaster::ParameterResolvers::AmiFinder
- Defined in:
- lib/stack_master/parameter_resolvers/ami_finder.rb
Instance Method Summary collapse
- #build_filters_from_hash(hash) ⇒ Object
- #build_filters_from_string(value, prefix = nil) ⇒ Object
- #find_latest_ami(filters, owners = ['self']) ⇒ Object
-
#initialize(region) ⇒ AmiFinder
constructor
A new instance of AmiFinder.
Constructor Details
#initialize(region) ⇒ AmiFinder
Returns a new instance of AmiFinder.
4 5 6 |
# File 'lib/stack_master/parameter_resolvers/ami_finder.rb', line 4 def initialize(region) @region = region end |
Instance Method Details
#build_filters_from_hash(hash) ⇒ Object
17 18 19 |
# File 'lib/stack_master/parameter_resolvers/ami_finder.rb', line 17 def build_filters_from_hash(hash) hash.map { |key, value| {name: key, values: Array(value.to_s)}} end |
#build_filters_from_string(value, prefix = nil) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/stack_master/parameter_resolvers/ami_finder.rb', line 8 def build_filters_from_string(value, prefix = nil) filters = value.split(',').map do |name_with_value| name, value = name_with_value.strip.split('=') name = prefix ? "#{prefix}:#{name}" : name { name: name, values: [value] } end filters end |
#find_latest_ami(filters, owners = ['self']) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/stack_master/parameter_resolvers/ami_finder.rb', line 21 def find_latest_ami(filters, owners = ['self']) images = ec2.describe_images(owners: owners, filters: filters).images sorted_images = images.sort do |a, b| Time.parse(a.creation_date) <=> Time.parse(b.creation_date) end sorted_images.last end |