mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
75 lines
2.4 KiB
Ruby
75 lines
2.4 KiB
Ruby
Shindo.tests('Fog::Compute::RackspaceV2 | image', ['rackspace']) do
|
|
service = Fog::Compute::RackspaceV2.new
|
|
|
|
test_time = Time.now.to_i.to_s
|
|
options = {
|
|
:name => "fog_server_#{test_time}",
|
|
:flavor_id => rackspace_test_flavor_id(service),
|
|
:image_id => rackspace_test_image_id(service)
|
|
}
|
|
|
|
tests('ready?') do
|
|
@server = Fog::Compute::RackspaceV2::Image.new
|
|
|
|
tests('default in ready state').returns(true) do
|
|
@server.state = Fog::Compute::RackspaceV2::Image::ACTIVE
|
|
@server.ready?
|
|
end
|
|
|
|
tests('custom ready state').returns(true) do
|
|
@server.state = Fog::Compute::RackspaceV2::Image::SAVING
|
|
@server.ready?(Fog::Compute::RackspaceV2::Image::SAVING)
|
|
end
|
|
|
|
tests('default NOT in ready state').returns(false) do
|
|
@server.state = Fog::Compute::RackspaceV2::Image::SAVING
|
|
@server.ready?
|
|
end
|
|
|
|
tests('custom NOT ready state').returns(false) do
|
|
@server.state = Fog::Compute::RackspaceV2::Image::UNKNOWN
|
|
@server.ready?(Fog::Compute::RackspaceV2::Image::SAVING)
|
|
end
|
|
|
|
tests('default error state').returns(true) do
|
|
@server.state = Fog::Compute::RackspaceV2::Image::ERROR
|
|
exception_occurred = false
|
|
begin
|
|
@server.ready?
|
|
rescue Fog::Compute::RackspaceV2::InvalidImageStateException => e
|
|
exception_occurred = true
|
|
returns(true) {e.desired_state == Fog::Compute::RackspaceV2::Image::ACTIVE }
|
|
returns(true) {e.current_state == Fog::Compute::RackspaceV2::Image::ERROR }
|
|
end
|
|
exception_occurred
|
|
end
|
|
|
|
tests('custom error state').returns(true) do
|
|
@server.state = Fog::Compute::RackspaceV2::Image::UNKNOWN
|
|
exception_occurred = false
|
|
begin
|
|
@server.ready?(Fog::Compute::RackspaceV2::Image::SAVING, Fog::Compute::RackspaceV2::Image::UNKNOWN)
|
|
rescue Fog::Compute::RackspaceV2::InvalidImageStateException => e
|
|
exception_occurred = true
|
|
returns(true) {e.desired_state == Fog::Compute::RackspaceV2::Image::SAVING }
|
|
returns(true) {e.current_state == Fog::Compute::RackspaceV2::Image::UNKNOWN }
|
|
end
|
|
exception_occurred
|
|
end
|
|
end
|
|
|
|
|
|
tests("success") do
|
|
begin
|
|
server = service.servers.create(options)
|
|
server.wait_for { ready? }
|
|
image = server.create_image("fog_image_#{test_time}")
|
|
|
|
tests("destroy").succeeds do
|
|
image.destroy
|
|
end
|
|
ensure
|
|
server.destroy if server
|
|
end
|
|
end
|
|
end
|