1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
module Fog
module Parsers
module AWS
module AutoScaling
class DescribeLaunchConfigurations < Fog::Parsers::Base
def reset
reset_launch_configuration
reset_block_device_mapping
reset_ebs
@results = { 'LaunchConfigurations' => [] }
@response = { 'DescribeLaunchConfigurationsResult' => {}, 'ResponseMetadata' => {} }
end
def reset_launch_configuration
@launch_configuration = { 'BlockDeviceMappings' => [], 'InstanceMonitoring' => {}, 'SecurityGroups' => [], 'ClassicLinkVPCSecurityGroups' => []}
end
def reset_block_device_mapping
@block_device_mapping = {}
end
def reset_ebs
@ebs = {}
end
def start_element(name, attrs = [])
super
case name
when 'BlockDeviceMappings'
@in_block_device_mappings = true
when 'SecurityGroups'
@in_security_groups = true
when 'ClassicLinkVPCSecurityGroups'
@in_classic_link_security_groups = true
end
end
def end_element(name)
case name
when 'member'
if @in_block_device_mappings
@launch_configuration['BlockDeviceMappings'] << @block_device_mapping
reset_block_device_mapping
elsif @in_security_groups
@launch_configuration['SecurityGroups'] << value
elsif @in_classic_link_security_groups
@launch_configuration['ClassicLinkVPCSecurityGroups'] << value
else
@results['LaunchConfigurations'] << @launch_configuration
reset_launch_configuration
end
when 'DeviceName', 'VirtualName'
@block_device_mapping[name] = value
when 'SnapshotId', 'VolumeSize', 'VolumeType', 'Iops'
@ebs[name] = value
when 'Ebs'
@block_device_mapping[name] = @ebs
reset_ebs
when 'EbsOptimized'
@launch_configuration[name] = value == 'true'
when 'Enabled'
@launch_configuration['InstanceMonitoring'][name] = (value == 'true')
when 'CreatedTime'
@launch_configuration[name] = Time.parse(value)
when 'ImageId', 'InstanceType', 'KeyName'
@launch_configuration[name] = value
when 'LaunchConfigurationARN', 'LaunchConfigurationName', 'ClassicLinkVPCId'
@launch_configuration[name] = value
when 'KernelId', 'RamdiskId', 'UserData'
@launch_configuration[name] = value
when 'IamInstanceProfile', 'PlacementTenancy'
@launch_configuration[name] = value
when 'SpotPrice'
@launch_configuration[name] = value.to_f
when 'AssociatePublicIpAddress'
@in_associate_public_ip = false
when 'BlockDeviceMappings'
@in_block_device_mappings = false
when 'LaunchConfigurations'
@in_launch_configurations = false
when 'SecurityGroups'
@in_security_groups = false
when 'ClassicLinkVPCSecurityGroups'
@in_classic_link_security_groups = false
when 'NextToken'
@results[name] = value
when 'RequestId'
@response['ResponseMetadata'][name] = value
when 'DescribeLaunchConfigurationsResponse'
@response['DescribeLaunchConfigurationsResult'] = @results
end
end
end
end
end
end
end
|