def register_image(options)
case
when options.is_a?(String)
options = { :image_location => options }
when !options.is_a?(Hash)
raise "Unsupported options type"
end
params = {}
params['ImageLocation'] = options[:image_location] if options[:image_location]
params['Name'] = options[:name] if options[:name]
params['Description'] = options[:description] if options[:description]
params['Architecture'] = options[:architecture] if options[:architecture]
params['KernelId'] = options[:kernel_id] if options[:kernel_id]
params['RamdiskId'] = options[:ramdisk_id] if options[:ramdisk_id]
params['RootDeviceName'] = options[:root_device_name] if options[:root_device_name]
params.merge!(amazonize_block_device_mappings(options[:block_device_mappings]))
link = generate_request("RegisterImage", params)
request_info(link, QEc2RegisterImageParser.new(:logger => @logger))
rescue Exception
on_exception
end