From 4df3e77e5eaca5375241cdd2486afd1b66ebd265 Mon Sep 17 00:00:00 2001 From: Kyle Rames Date: Wed, 21 Aug 2013 08:03:50 -0500 Subject: [PATCH] [rackspace] making server tests more robust --- tests/rackspace/helper.rb | 36 +++++++++---------- .../models/compute_v2/server_tests.rb | 29 +++++++-------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/tests/rackspace/helper.rb b/tests/rackspace/helper.rb index 92d68d8a5..24b671b77 100644 --- a/tests/rackspace/helper.rb +++ b/tests/rackspace/helper.rb @@ -65,25 +65,25 @@ module Shindo def rackspace_test_flavor_id(service) @flavor_id ||= Fog.credentials[:rackspace_flavor_id] || service.flavors.first.id end - end - # After a server has been successfully deleted they are still being reported as attached to a cloud network - # causing delete calls to fail. This method attempts to address that. - def delete_test_network(network) - return false if Fog.mocking? || network.nil? - attempt = 0 - begin - network.destroy - rescue Fog::Compute::RackspaceV2::ServiceError => e - if attempt == 3 - puts "Unable to delete #{network.label}" - return false + # After a server has been successfully deleted they are still being reported as attached to a cloud network + # causing delete calls to fail. This method attempts to address that. + def delete_test_network(network) + return false if Fog.mocking? || network.nil? + attempt = 0 + begin + network.destroy + rescue Fog::Compute::RackspaceV2::ServiceError => e + if attempt == 3 + Fog::Logger.warning "Unable to delete #{network.label}" + return false + end + Fog::Logger.warning "Network #{network.label} Delete Fail Attempt #{attempt}- #{e.inspect}" + attempt += 1 + sleep 60 + retry end - Fog.warning "Network #{network.label} Delete Fail Attempt #{attempt}- #{e.inspect}" - attempt += 1 - sleep 60 - retry + return true end - return true end -end +end \ No newline at end of file diff --git a/tests/rackspace/models/compute_v2/server_tests.rb b/tests/rackspace/models/compute_v2/server_tests.rb index 4be534ed5..d26ff0666 100644 --- a/tests/rackspace/models/compute_v2/server_tests.rb +++ b/tests/rackspace/models/compute_v2/server_tests.rb @@ -77,7 +77,8 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do end tests('#update').succeeds do - @instance.name = "fog_server_update" + new_name = "fog_server_update#{Time.now.to_i.to_s}" + @instance.name = new_name @instance.access_ipv4_address= "10.10.0.1" @instance.access_ipv6_address= "::1" @instance.save @@ -85,7 +86,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do @instance.reload returns("10.10.0.1") { @instance.access_ipv4_address } returns("::1") { @instance.access_ipv6_address } - returns("fog_server_update") { @instance.name } + returns(new_name) { @instance.name } end tests('#reboot("SOFT")').succeeds do @@ -98,18 +99,6 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do @instance.reboot('HARD') returns('HARD_REBOOT') { @instance.state } end - - @instance.wait_for { ready? } - @test_image = nil - begin - tests('#create_image').succeeds do - @test_image = @instance.create_image('fog-test-image') - @test_image.reload - returns('SAVING') { @test_image.state } - end - ensure - @test_image.destroy unless @test_image.nil? || Fog.mocking? - end sleep 30 unless Fog.mocking? @instance.wait_for { ready? } @@ -165,6 +154,18 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do returns('somerandompassword') { @instance.password } end + @instance.wait_for { ready? } + @test_image = nil + begin + tests('#create_image').succeeds do + @test_image = @instance.create_image('fog-test-image') + @test_image.reload + returns('SAVING') { @test_image.state } + end + ensure + @test_image.destroy unless @test_image.nil? || Fog.mocking? + end + tests('attachments') do begin @volume = cbs_service.volumes.create(:size => 100, :display_name => "fog-#{Time.now.to_i.to_s}")