diff --git a/tests/rackspace/helper.rb b/tests/rackspace/helper.rb index 347fe0af5..92d68d8a5 100644 --- a/tests/rackspace/helper.rb +++ b/tests/rackspace/helper.rb @@ -65,6 +65,25 @@ module Shindo def rackspace_test_flavor_id(service) @flavor_id ||= Fog.credentials[:rackspace_flavor_id] || service.flavors.first.id end + 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 + end + Fog.warning "Network #{network.label} Delete Fail Attempt #{attempt}- #{e.inspect}" + attempt += 1 + sleep 60 + retry + end + return true + end end diff --git a/tests/rackspace/models/compute_v2/server_tests.rb b/tests/rackspace/models/compute_v2/server_tests.rb index 63e15e29e..4be534ed5 100644 --- a/tests/rackspace/models/compute_v2/server_tests.rb +++ b/tests/rackspace/models/compute_v2/server_tests.rb @@ -190,11 +190,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do end wait_for_server_deletion(@instance) - sleep 60 unless Fog.mocking? - - tests("delete network #{@network.label}").succeeds do - @network.destroy if @network - end + delete_test_network(@network) #When after testing resize/resize_confirm we get a 409 when we try to resize_revert so I am going to split it into two blocks model_tests(service.servers, options, true) do diff --git a/tests/rackspace/requests/compute_v2/server_tests.rb b/tests/rackspace/requests/compute_v2/server_tests.rb index 64049a2ae..284ed8ce1 100644 --- a/tests/rackspace/requests/compute_v2/server_tests.rb +++ b/tests/rackspace/requests/compute_v2/server_tests.rb @@ -117,7 +117,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do wait_for_server_state(service, server_id, 'ACTIVE', 'ERROR') tests('#resize_server').succeeds do - resize_flavor_id = flavor_id + resize_flavor_id = Fog.mocking? ? flavor_id : service.flavors[1].id service.resize_server(server_id, resize_flavor_id) end wait_for_server_state(service, server_id, 'VERIFY_RESIZE', 'ACTIVE')