class AWS::AutoScaling::LaunchConfigurationCollection

def [] name

Returns:
  • (LaunchConfiguration) -

Parameters:
  • name (String) -- The name of a launch configuraiton.
def [] name
  LaunchConfiguration.new(name, :config => config)
end

def _each_item next_token, limit, options = {}, &block

def _each_item next_token, limit, options = {}, &block
  options[:next_token] = next_token if next_token
  options[:max_records] = limit if limit
  resp = client.describe_launch_configurations(options)
  resp.launch_configurations.each do |details|
    
    launch_configuration = LaunchConfiguration.new_from(
      :describe_launch_configurations,
      details,
      details.launch_configuration_name,
      :config => config)
    yield(launch_configuration)
    
  end
  resp.data[:next_token]
end

def create name, image, instance_type, options = {}

Returns:
  • (LaunchConfiguration) -

Options Hash: (**options)
  • :spot_price (String) --
  • :iam_instance_profile (String) --
  • :user_data (String) -- The user data available to
  • :security_groups (Array, Array) --
  • :ramdisk_id (String) -- The ID of the ramdisk to
  • :key_pair (KeyPair, String) -- The keypair to launch
  • :kernel_id (String) -- The ID of the kernel to
  • :detailed_instance_monitoring (Boolean) --
  • :block_device_mappings (Array) --

Parameters:
  • options (Hash) --
  • instance_type (String) -- The type of instance (e.g.
  • image (EC2::Image, String) -- An {EC2::Image} or image id string.
  • name (String) -- The name of the launch configuration to create.
def create name, image, instance_type, options = {}
  
  client_opts = {}
  client_opts[:launch_configuration_name] = name
  client_opts[:image_id] = image_id_opt(image)
  client_opts[:instance_type] = instance_type
  client_opts[:instance_monitoring] = instance_monitoring_opt(options) if
    options.key?(:detailed_instance_monitoring)
  client_opts[:key_name] = key_name_opt(options) if options[:key_pair]
  client_opts[:security_groups] = security_groups_opt(options) if
    options.key?(:security_groups)
  client_opts[:user_data] = user_data_opt(options) if options[:user_data]
  [
    :iam_instance_profile,
    :spot_price,
    :kernel_id,
    :ramdisk_id,
    :block_device_mappings,
  ].each do |opt|
    client_opts[opt] = options[opt] if options.key?(opt)
  end
  client.create_launch_configuration(client_opts)
  LaunchConfiguration.new(name,
    :image_id => client_opts[:image_id],
    :instance_type => client_opts[:instance_type],
    :config => config)
end

def image_id_opt image

def image_id_opt image
  image.is_a?(EC2::Image) ? image.image_id : image
end

def instance_monitoring_opt options

def instance_monitoring_opt options
  options[:detailed_instance_monitoring] == true ?
    { :enabled => true } :
    { :enabled => false }
end

def key_name_opt options

def key_name_opt options
  key_pair = options[:key_pair]
  key_pair.is_a?(EC2::KeyPair) ? key_pair.name : key_pair
end

def security_groups_opt options

def security_groups_opt options
  options[:security_groups].collect do |sg|
    sg.is_a?(EC2::SecurityGroup) ? sg.id : sg
  end
end

def user_data_opt options

def user_data_opt options
  Base64.encode64(options[:user_data])
end