server.wait_for { printf '*'; console_output.body['output'] =~ /^cloud-init boot finished/ }def create_instance(connection, options)image = connection.images.get(options[:ami])block_device_mapping = create_block_device_mapping(image.block_device_mapping)set_root_device_size(block_device_mapping, image.root_device_name, options[:root_device_size])server = connection.servers.create(image_id: options[:ami],flavor_id: options[:flavor],block_device_mapping: block_device_mapping,key_name: options[:name],groups: options[:name],'ClientToken' => SimpleUUID::UUID.new.to_guid)connection.tags.create(key: 'Name', value: options[:name], resource_id: server.id)server.wait_for { printf '.'; ready? }
putsserverenddef create_block_device_mapping(image_mappings)block_device_mapping = []name_mapping = {'deviceName' => 'DeviceName','snapshotId' => 'Ebs.SnapshotId','volumeSize' => 'Ebs.VolumeSize','deleteOnTermination' => 'Ebs.DeleteOnTermination',}image_mappings.each do |image_mapping|mapping = {}name_mapping.each do |key, value|mapping[value] = image_mapping[key]endblock_device_mapping << mappingendblock_device_mappingenddef set_root_device_size(block_device_mapping, root_device_name, root_device_size)root_device = block_device_mapping.find { |mapping| mapping['DeviceName'] == root_device_name }root_device['Ebs.VolumeSize'] = root_device_sizeblock_device_mappingend
Thanks for your help!
-karl
Just a heads up you need to add "'virtualName' => 'VirtualName'," to the name_mapping hash.
--
You received this message because you are subscribed to the Google Groups "ruby-fog" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ruby-fog+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.