From d082e6e18898a38c9003dd0a215beb13df210975 Mon Sep 17 00:00:00 2001 From: Nat Welch Date: Thu, 8 Aug 2013 12:37:30 -0700 Subject: [PATCH] [google|compute] Fix insert disk to deal with changes to insert image. --- lib/fog/google/examples/launch_micro_instance.rb | 15 ++++++++++----- lib/fog/google/requests/compute/insert_disk.rb | 11 +++++++++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/lib/fog/google/examples/launch_micro_instance.rb b/lib/fog/google/examples/launch_micro_instance.rb index ac2907bb9..56f5fcad3 100755 --- a/lib/fog/google/examples/launch_micro_instance.rb +++ b/lib/fog/google/examples/launch_micro_instance.rb @@ -1,16 +1,21 @@ def test connection = Fog::Compute.new({ :provider => "Google" }) time = Time.now.utc.to_i - disk = connection.disks.create({:name => 'foggydisk', :size_gb => 10, :zone_name => 'us-central1-a', :image_name => 'centos-6-v20130522'}) + disk = connection.disks.create({ + :name => 'foggydisk', + :size_gb => 10, + :zone_name => 'us-central1-a', + :image_name => 'centos-6-v20130522', + }) disk.wait_for { disk.ready? } params = { :name => "fog-smoke-test-#{Time.now.to_i}", :machine_type => "f1-micro", - :zone_name => "us-central1-a", - :disks => [ disk.get_as_boot_disk(true) ], - :kernel => 'gce-v20130522', - :user => ENV['USER'] + :zone_name => "us-central1-a", + :disks => [ disk.get_as_boot_disk(true) ], + :user => ENV['USER'], + :kernel => 'gce-v20130522', } server = connection.servers.bootstrap params diff --git a/lib/fog/google/requests/compute/insert_disk.rb b/lib/fog/google/requests/compute/insert_disk.rb index a1a19c2ed..88ecb683e 100644 --- a/lib/fog/google/requests/compute/insert_disk.rb +++ b/lib/fog/google/requests/compute/insert_disk.rb @@ -18,12 +18,19 @@ module Fog 'project' => @project, 'zone' => zone_name } + if image_name - # We don't know the owner of the image. - image = images.create({:name => image_name}) + begin + image = images.get(image_name) + rescue Fog::Errors::Error + # We don't know the owner of the image. + image = images.create({:name => image_name}) + end + @image_url = @api_url + image.resource_url parameters['sourceImage'] = @image_url end + body_object = { 'name' => disk_name, 'sizeGb' => disk_size,