[rackspace] fixing broken user tests; adding wait_for_request method to add in testing
This commit is contained in:
parent
aa8b336cd8
commit
4b3fd82c8d
|
@ -23,6 +23,12 @@ module Shindo
|
|||
end
|
||||
end
|
||||
|
||||
def wait_for_request(description = "waiting", &block)
|
||||
return if Fog.mocking?
|
||||
tests(description) do
|
||||
Fog.wait_for &block
|
||||
end
|
||||
end
|
||||
|
||||
def wait_for_server_deletion(server)
|
||||
return if Fog.mocking?
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
|
||||
compute_service = Fog::Compute::RackspaceV2.new
|
||||
block_storage_service = Fog::Rackspace::BlockStorage.new
|
||||
image_id = Fog.credentials[:rackspace_image_id] || compute_service.images.first.id
|
||||
flavor_id = Fog.credentials[:rackspace_flavor_id] || compute_service.flavors.first.id
|
||||
timeout = Fog.mocking? ? 1 : 10
|
||||
image_id = rackspace_test_image_id(compute_service)
|
||||
flavor_id = rackspace_test_flavor_id(compute_service)
|
||||
|
||||
attachment_format = {
|
||||
'volumeAttachment' => {
|
||||
|
@ -27,12 +26,12 @@ Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
|
|||
|
||||
|
||||
tests('success') do
|
||||
until compute_service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
||||
sleep timeout
|
||||
wait_for_request("Waiting for server to become ready") do
|
||||
compute_service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
||||
end
|
||||
|
||||
until block_storage_service.get_volume(volume_id).body['volume']['status'] == 'available'
|
||||
sleep timeout
|
||||
wait_for_request("Waiting for Volume to be ready") do
|
||||
block_storage_service.get_volume(volume_id).body['volume']['status'] == 'available'
|
||||
end
|
||||
|
||||
tests("#attach_volume(#{server_id}, #{volume_id}, #{device_id})").formats(attachment_format) do
|
||||
|
@ -43,8 +42,8 @@ Shindo.tests('Fog::Compute::RackspaceV2 | attachment_tests', ['rackspace']) do
|
|||
compute_service.list_attachments(server_id).body
|
||||
end
|
||||
|
||||
until block_storage_service.get_volume(volume_id).body['volume']['status'] == 'in-use'
|
||||
sleep timeout
|
||||
wait_for_request("Waiting for Volume to be ready") do
|
||||
block_storage_service.get_volume(volume_id).body['volume']['status'] == 'in-use'
|
||||
end
|
||||
|
||||
tests("#get_attachment(#{server_id}, #{volume_id})").formats(attachment_format) do
|
||||
|
|
|
@ -4,33 +4,36 @@ Shindo.tests('Fog::Rackspace::Database | database_tests', ['rackspace']) do
|
|||
|
||||
service = Fog::Rackspace::Databases.new
|
||||
instance_name = 'fog' + Time.now.to_i.to_s
|
||||
instance_id = service.create_instance(instance_name, 1, 1).body['instance']['id']
|
||||
|
||||
until service.get_instance(instance_id).body["instance"]["status"] == 'ACTIVE'
|
||||
sleep 10
|
||||
begin
|
||||
@instance_id = service.create_instance(instance_name, 1, 1).body['instance']['id']
|
||||
|
||||
wait_for_request("waiting for database to be created") do
|
||||
service.get_instance(@instance_id).body["instance"]["status"] == 'ACTIVE'
|
||||
end
|
||||
|
||||
tests('success') do
|
||||
database_name = 'fogdb' + Time.now.to_i.to_s
|
||||
|
||||
tests("#create_database(#{@instance_id}, #{database_name})").returns(202) do
|
||||
service.create_database(@instance_id, database_name).status
|
||||
end
|
||||
|
||||
tests("#list_databases{#{@instance_id})").formats(LIST_DATABASES_FORMAT) do
|
||||
service.list_databases(@instance_id).body
|
||||
end
|
||||
|
||||
tests("#delete_database(#{@instance_id}, #{database_name})").returns(202) do
|
||||
service.delete_database(@instance_id, database_name).status
|
||||
end
|
||||
end
|
||||
|
||||
tests('failure') do
|
||||
tests("#create_database(#{@instance_id}, '') => Invalid Create Critera").raises(Fog::Rackspace::Databases::BadRequest) do
|
||||
service.create_database(@instance_id, '')
|
||||
end
|
||||
end
|
||||
ensure
|
||||
service.delete_instance(@instance_id) if @instance_id
|
||||
end
|
||||
|
||||
tests('success') do
|
||||
database_name = 'fogdb' + Time.now.to_i.to_s
|
||||
|
||||
tests("#create_database(#{instance_id}, #{database_name})").succeeds do
|
||||
service.create_database(instance_id, database_name).body
|
||||
end
|
||||
|
||||
tests("#list_databases{#{instance_id})").formats(LIST_DATABASES_FORMAT) do
|
||||
service.list_databases(instance_id).body
|
||||
end
|
||||
|
||||
tests("#delete_database(#{instance_id}, #{database_name})").succeeds do
|
||||
service.delete_database(instance_id, database_name)
|
||||
end
|
||||
end
|
||||
|
||||
tests('failure') do
|
||||
tests("#create_database(#{instance_id}, '') => Invalid Create Critera").raises(Fog::Rackspace::Databases::BadRequest) do
|
||||
service.create_database(instance_id, '')
|
||||
end
|
||||
end
|
||||
|
||||
service.delete_instance(instance_id)
|
||||
end
|
||||
|
|
|
@ -6,24 +6,24 @@ Shindo.tests('Fog::Rackspace::Database | user_tests', ['rackspace']) do
|
|||
instance_name = 'fog' + Time.now.to_i.to_s
|
||||
instance_id = service.create_instance(instance_name, 1, 1).body['instance']['id']
|
||||
|
||||
until service.get_instance(instance_id).body["instance"]["status"] == 'ACTIVE'
|
||||
sleep 10
|
||||
wait_for_request("Waiting for database to be created") do
|
||||
service.get_instance(instance_id).body["instance"]["status"] == 'ACTIVE'
|
||||
end
|
||||
|
||||
tests('success') do
|
||||
user_name = 'fog' + Time.now.to_i.to_s
|
||||
password = 'password1'
|
||||
|
||||
tests("#create_user(#{instance_id}, #{user_name}, #{password})").succeeds do
|
||||
service.create_user(instance_id, user_name, password).body
|
||||
tests("#create_user(#{instance_id}, #{user_name}, #{password})").returns(202) do
|
||||
service.create_user(instance_id, user_name, password).status
|
||||
end
|
||||
|
||||
tests("#list_users{#{instance_id})").formats(LIST_USERS_FORMAT) do
|
||||
service.list_users(instance_id).body
|
||||
end
|
||||
|
||||
tests("#delete_user(#{instance_id}, #{user_name})").succeeds do
|
||||
service.delete_user(instance_id, user_name)
|
||||
tests("#delete_user(#{instance_id}, #{user_name})").returns(202) do
|
||||
service.delete_user(instance_id, user_name).status
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue