class Topo::Provision::AwsLaunchConfigurationGenerator

Public Class Methods

from_node(node) click to toggle source
# File lib/topo/provision/aws/generators/aws_launch_configuration.rb, line 40
def self.from_node(node)
  auto_scaling = value_from_path(node, %w[provisioning  node_group  auto_scaling]) || {}
  options = auto_scaling['launch_configuration_options']
  bootstrap_options = value_from_path(node, %w[provisioning machine_options bootstrap_options])
  options ||= bootstrap_options      
  image_id = options['image_id']
  options.delete('image_id')
     
  lc_data = { 
    "name" => auto_scaling['launch_configuration_name'] ||  node['name'] + "_config",
    "image" => image_id || auto_scaling['image'] || node['name'] + "_image"
  }
  
  %w[instance_type].each do |key|
    lc_data[key] = auto_scaling[key] if auto_scaling.key? key
  end 
        
  if options
   lc_data['options'] = convert_keys_to_sym_deep(options)
  end  
  
  self.new(lc_data, image_id)
 end
new(data, image_id=nil) click to toggle source
Calls superclass method Topo::Provision::ResourceGenerator::new
# File lib/topo/provision/aws/generators/aws_launch_configuration.rb, line 26
def initialize(data, image_id=nil)
  @resource_type ||= "aws_launch_configuration"
  super(data)
  @image_id = image_id || value_from_path(data, %w[options image_id])

  %w[image instance_type options].each do |key|
    @resource_attributes[key] = data[key] if data.key? key
  end 
end

Public Instance Methods

needs_image?() click to toggle source
# File lib/topo/provision/aws/generators/aws_launch_configuration.rb, line 36
def needs_image?
  @image_id.nil?
end