module RodeoClown::InstanceBuilder
Attributes
availability_zones[R]
key_pair[R]
options[R]
Public Instance Methods
build_instances(template = nil)
click to toggle source
Build instances using build options
if :template is passed, only build on, used as a template for a new image
# File lib/rodeo_clown/instance_builder.rb, line 34 def build_instances(template = nil) build_args = if template == :template [build_options.first.merge(count: 1)] else build_options end build_args.map do |args| instances = create_instance args apply_tags(instances) instances end.flatten end
build_options()
click to toggle source
# File lib/rodeo_clown/instance_builder.rb, line 21 def build_options if availability_zones.any? availability_zones.map do |zone| configs.merge(availability_zone: zone) end else [configs] end end
key_pair=(key_pair_name)
click to toggle source
# File lib/rodeo_clown/instance_builder.rb, line 17 def key_pair=(key_pair_name) @key_pair = AWS::EC2::KeyPair.new(key_pair_name) end
many_from_options(options)
click to toggle source
# File lib/rodeo_clown/instance_builder.rb, line 8 def many_from_options(options) options = options.symbolize_keys # Create a duplicate @key_pair_name = options.delete(:key_pair_name) @tags = options.delete(:tags) @availability_zones = options.delete(:availability_zones) || [] @options = options end
Private Instance Methods
configs()
click to toggle source
# File lib/rodeo_clown/instance_builder.rb, line 60 def configs options.merge(:key_pair => key_pair) end