class Tsudura::Aws::LaunchConfig
Public Class Methods
new(image_id, config, timestamp)
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 5 def initialize(image_id, config, timestamp) @image_id = image_id @config = config @timestamp = timestamp end
Public Instance Methods
create()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 17 def create @new_launch_config = autoscaling.create_launch_configuration(options) end
delete()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 21 def delete unless unavailable_launch_configurations.empty? unavailable_launch_configurations.each do |launch_configuration_name| autoscaling.delete_launch_configuration(launch_configuration_name: launch_configuration_name) end end end
options()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 11 def options option = base_option option[:iam_instance_profile] = @config[:iam_instance_profile] if @config[:iam_instance_profile] option end
Private Instance Methods
all_launch_configurations()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 46 def all_launch_configurations tmp = [] autoscaling.describe_launch_configurations.each_page { |i| tmp.concat i.launch_configurations } tmp.select { |i| i[:launch_configuration_name] =~ /#{@config[:service]}-#{short_env}/ }.map(&:launch_configuration_name) end
autoscaling()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 31 def autoscaling @autoscaling ||= ::Aws::AutoScaling::Client.new(region: @config[:region]) end
available_launch_configurations()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 39 def available_launch_configurations tmp = [] autoscaling.describe_auto_scaling_groups.each_page { |i| tmp.concat i.auto_scaling_groups } tmp.select { |i| i[:launch_configuration_name] =~ /#{@config[:service]}-#{short_env}/ }.map(&:launch_configuration_name).uniq end
base_option()
click to toggle source
# File lib/tsudura/aws/launch_config.rb, line 53 def base_option { image_id: @image_id, key_name: @config[:key_name], user_data: Base64.encode64(@config[:user_data_script]), instance_type: @config[:instance_type], security_groups: [@config[:security_group_id]], launch_configuration_name: "#{@config[:service]}-#{short_env}-#{@timestamp}", } end