Class: Fog::AWS::AutoScaling::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/conan/cloud/aws/create_launch_configuration.rb

Instance Method Summary collapse

Instance Method Details

#create_launch_configuration(image_id, instance_type, launch_configuration_name, options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/conan/cloud/aws/create_launch_configuration.rb', line 10

def create_launch_configuration(image_id, instance_type, launch_configuration_name, options = {})
  if block_device_mappings = options.delete('BlockDeviceMappings')
    block_device_mappings.each_with_index do |mapping, i|
      for key, value in mapping
        options.merge!({ format("BlockDeviceMappings.member.%d.#{key}", i+1) => value })
      end
    end
  end
  if security_groups = options.delete('SecurityGroups')
    options.merge!(Fog::AWS.indexed_param('SecurityGroup.member', [*security_groups]))
  end
  if options['UserData']
    options['UserData'] = Base64.encode64(options['UserData'])
  end

  request({
    'Action'                  => 'CreateLaunchConfiguration',
    'ImageId'                 => image_id,
    'InstanceType'            => instance_type,
    'LaunchConfigurationName' => launch_configuration_name,
    :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
  }.merge!(options))
end