[rackspace|compute_v2] compute_v2 tests were failing because the flavor used in the tests was too small for the image selected. I updating tests to use the an Ubuntu image in hopes of making the tests less brittle.

This commit is contained in:
Kyle Rames 2013-02-28 08:46:57 -06:00
parent 3aaa584a88
commit 2a2ea35886
7 changed files with 29 additions and 25 deletions

View File

@ -38,6 +38,7 @@ module Fog
"OS-DCF:diskConfig" => "AUTO",
"created" => "2012-02-28T19:38:57Z",
"id" => image_id,
"name" => "Ubuntu",
"links" => [
{
"href" => "https://dfw.servers.api.rackspacecloud.com/v2/010101/images/#{image_id}",

View File

@ -36,5 +36,14 @@ module Shindo
sleep 30 unless Fog.mocking?
end
def rackspace_test_image_id(service)
# I chose to use the first Ubuntu because it will work with the smallest flavor and it doesn't require a license
@image_id ||= Fog.credentials[:rackspace_image_id] || service.images.find {|img| img.name =~ /Ubuntu/ }.id
end
def rackspace_test_flavor_id(service)
@flavor_id ||= Fog.credentials[:rackspace_flavor_id] || service.flavors.first.id
end
end
end

View File

@ -1,13 +1,11 @@
Shindo.tests('Fog::Compute::RackspaceV2 | image', ['rackspace']) do
service = Fog::Compute::RackspaceV2.new
flavor_id = Fog.credentials[:rackspace_flavor_id] || service.flavors.first.id
image_id = Fog.credentials[:rackspace_image_id] || service.images.first.id
test_time = Time.now.to_i.to_s
options = {
:name => "fog_server_#{test_time}",
:flavor_id => flavor_id,
:image_id => image_id
:flavor_id => rackspace_test_flavor_id(service),
:image_id => rackspace_test_image_id(service)
}
tests("success") do

View File

@ -7,7 +7,10 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
tests('success') do
begin
@server = service.servers.create(:name => "fog_server_#{test_time}", :flavor_id => 2, :image_id => "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001")
@server = service.servers.create(:name => "fog_server_#{test_time}",
:flavor_id => rackspace_test_flavor_id(service),
:image_id => rackspace_test_image_id(service))
@server.wait_for(timeout=1500) { ready? }
tests('server') do
@ -17,8 +20,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | metadata', ['rackspace']) do
end
tests('image') do
image_id = @server.create_image("fog_image_#{test_time}", :metadata => {:my_key => 'my_value'})
@image = service.images.get image_id
@image = @server.create_image("fog_image_#{test_time}", :metadata => {:my_key => 'my_value'})
@image.wait_for(timeout = 1500) { ready? }
tests("#all").succeeds do
pending if Fog.mocking? && !mocks_implemented

View File

@ -2,14 +2,10 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
service = Fog::Compute::RackspaceV2.new
cbs_service = Fog::Rackspace::BlockStorage.new
flavor_id = Fog.credentials[:rackspace_flavor_id] || service.flavors.first.id
image_id = Fog.credentials[:rackspace_image_id] || service.images.first.id
image_id ||= Fog.mocking? ? service.images.first.id : service.images.find {|image| image.name =~ /Ubuntu/}.id # use the first Ubuntu image
options = {
:name => "fog_server_#{Time.now.to_i.to_s}",
:flavor_id => flavor_id,
:image_id => image_id,
:flavor_id => rackspace_test_flavor_id(service),
:image_id => rackspace_test_image_id(service),
:metadata => { 'fog_test' => 'true' }
}
@ -59,7 +55,7 @@ Shindo.tests('Fog::Compute::RackspaceV2 | server', ['rackspace']) do
@instance.wait_for(timeout=1500) { ready? }
sleep 60 unless Fog.mocking?
tests('#rebuild').succeeds do
@instance.rebuild(image_id)
@instance.rebuild rackspace_test_image_id(service)
returns('REBUILD') { @instance.state }
end

View File

@ -1,20 +1,18 @@
Shindo.tests('Fog::Compute::RackspaceV2 | servers', ['rackspace']) do
connection = Fog::Compute::RackspaceV2.new
flavor_id = Fog.credentials[:rackspace_flavor_id] || connection.flavors.first.id
image_id = Fog.credentials[:rackspace_image_id] || connection.images.first.id
service = Fog::Compute::RackspaceV2.new
options = {
:name => "fog_server_#{Time.now.to_i.to_s}",
:flavor_id => flavor_id,
:image_id => image_id
:flavor_id => rackspace_test_flavor_id(service),
:image_id => rackspace_test_image_id(service)
}
collection_tests(connection.servers, options, true) do
collection_tests(service.servers, options, true) do
@instance.wait_for { ready? }
end
tests("#bootstrap").succeeds do
pending if Fog.mocking?
@server = connection.servers.bootstrap(options)
@server = service.servers.bootstrap(options)
end
if @server

View File

@ -1,8 +1,6 @@
Shindo.tests('Fog::Compute::RackspaceV2 | image_tests', ['rackspace']) do
service = Fog::Compute.new(:provider => 'Rackspace', :version => 'V2')
flavor_id = Fog.credentials[:rackspace_flavor_id] || service.flavors.first.id
image_id = Fog.credentials[:rackspace_image_id] || service.images.first.id
image_format = {
'id' => String,
'name' => String,
@ -33,7 +31,9 @@ Shindo.tests('Fog::Compute::RackspaceV2 | image_tests', ['rackspace']) do
begin
test_time = Time.now.to_i.to_s
@server = service.servers.create(:name => "fog-image-tests_#{test_time}", :flavor_id => flavor_id, :image_id => image_id)
@server = service.servers.create(:name => "fog-image-tests_#{test_time}",
:flavor_id => rackspace_test_flavor_id(service),
:image_id => rackspace_test_image_id(service))
@server.wait_for { ready? }
@image_id = nil