1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/tests/serverlove/requests/compute/server_tests.rb

85 lines
3.1 KiB
Ruby

Shindo.tests('Fog::Compute[:serverlove] | server requests', ['serverlove']) do
@server_format = {
'server' => String,
'name' => String,
'user' => String,
'status' => String,
'started' => Fog::Nullable::String,
'cpu' => Integer,
'mem' => Integer,
'smp' => Fog::Nullable::String,
'persistent' => Fog::Nullable::String,
'vnc' => Fog::Nullable::String,
'vnc:password' => Fog::Nullable::String,
'nic:0:dhcp' => String,
'nic:0:model' => String
}
tests('success') do
attributes = { 'name' => 'Test', 'cpu' => '1000', 'mem' => '1000', 'persistent' => 'true' }
tests("#create_server").formats(@server_format) do
@server = Fog::Compute[:serverlove].create_server(Fog::Compute::Serverlove::Server.defaults.merge(attributes)).body
end
tests("#list_servers").succeeds do
Fog::Compute[:serverlove].servers
end
tests("#update_server").returns(true) do
@server['name'] = "Diff"
Fog::Compute[:serverlove].update_server(@server['server'], { :name => @server['name']})
Fog::Compute[:serverlove].servers.get(@server['server']).name == "Diff"
end
tests("assigns drive to server").succeeds do
@image = Fog::Compute[:serverlove].create_image('name' => 'Test', 'size' => '24234567890').body
# Load debian
Fog::Compute[:serverlove].load_standard_image(@image['drive'], 'aca2fa0b-40bc-4e06-ad99-f1467690d5de')
Fog::Compute[:serverlove].update_server(@server['server'], { 'ide:0:0' => @image['drive'], 'boot' => 'ide:0:0'})
end
tests("waits for imaging...").returns(true) do
while(percent_complete = Fog::Compute[:serverlove].images.get(@image['drive']).imaging)
sleep(1)
STDERR.print "#{percent_complete} "
break if percent_complete.include?("100")
end
STDERR.print "100% "
true
end
tests("#start_server").returns(true) do
Fog::Compute[:serverlove].start_server(@server['server'])
Fog::Compute[:serverlove].servers.get(@server['server']).status == "active"
end
tests("#reset_server").returns(true) do
Fog::Compute[:serverlove].reset_server(@server['server'])
Fog::Compute[:serverlove].servers.get(@server['server']).status == "active"
end
tests("#shutdown_server").succeeds do
Fog::Compute[:serverlove].shutdown_server(@server['server'])
# Can't guarantee the OS will honour this command so don't test status
end
tests("#stop_server").returns(true) do
Fog::Compute[:serverlove].start_server(@server['server'])
Fog::Compute[:serverlove].stop_server(@server['server'])
Fog::Compute[:serverlove].servers.get(@server['server']).status == "stopped"
end
tests("#destroy_server").succeeds do
Fog::Compute[:serverlove].destroy_server(@server['server'])
end
tests("destroy test drive").succeeds do
Fog::Compute[:serverlove].destroy_image(@image['drive'])
end
end
end