2011-11-03 17:42:56 -04:00
|
|
|
Shindo.tests('Fog::Compute[:clodo] | server requests', ['clodo']) do
|
|
|
|
|
2011-11-08 06:06:12 -05:00
|
|
|
@ip_format = {
|
|
|
|
'primary_ip' => Fog::Boolean,
|
|
|
|
'isp' => Fog::Boolean,
|
|
|
|
'ip' => String
|
|
|
|
}
|
|
|
|
|
2011-11-03 17:42:56 -04:00
|
|
|
@server_format = {
|
|
|
|
'addresses' => {
|
2011-11-08 06:06:12 -05:00
|
|
|
'public' => [@ip_format]
|
2011-11-03 17:42:56 -04:00
|
|
|
},
|
2011-11-08 06:06:12 -05:00
|
|
|
'id' => String,
|
|
|
|
'imageId' => String,
|
2011-11-03 17:42:56 -04:00
|
|
|
'name' => String,
|
2011-11-08 06:06:12 -05:00
|
|
|
'type' => String,
|
2011-11-03 17:42:56 -04:00
|
|
|
'status' => String
|
|
|
|
}
|
|
|
|
|
2011-11-08 06:06:12 -05:00
|
|
|
@server_details_format = @server_format.merge({
|
|
|
|
'id' => Integer,
|
|
|
|
'vps_createdate' => String,
|
|
|
|
'vps_hdd_max' => String,
|
|
|
|
'vps_traff' => NilClass,
|
|
|
|
'vps_mem_1h_max' => String,
|
|
|
|
'vps_mem_load' => String,
|
|
|
|
'vps_user_pass' => String,
|
|
|
|
'vps_vnc_pass' => String,
|
|
|
|
'vps_adddate' => String,
|
|
|
|
'vps_os_title' => String,
|
|
|
|
'vps_update' => String,
|
|
|
|
'vps_mem_1h_min' => String,
|
|
|
|
'vps_mem_1h_avg' => NilClass,
|
|
|
|
'vps_memory_max' => String,
|
|
|
|
'vps_os_version' => String,
|
|
|
|
'vps_cpu_1h_max' => String,
|
|
|
|
'vps_hdd_load' => String,
|
|
|
|
'vps_disk_load' => String,
|
|
|
|
'vps_os_type' => String,
|
|
|
|
'vps_memory' => String,
|
|
|
|
'vps_cpu_load' => String,
|
|
|
|
'vps_update_days' => String,
|
|
|
|
'vps_os_bits' => String,
|
|
|
|
'vps_vnc' => String,
|
|
|
|
'vps_cpu_max' => String,
|
|
|
|
'vps_cpu_1h_min' => String,
|
|
|
|
'vps_cpu_1h_avg' => NilClass,
|
|
|
|
'vps_root_pass' => String
|
|
|
|
})
|
|
|
|
|
2011-11-03 17:42:56 -04:00
|
|
|
@server_create_format = {
|
|
|
|
'name' => String,
|
|
|
|
'adminPass' => String,
|
|
|
|
'imageId' => String,
|
|
|
|
'id' => Integer
|
|
|
|
}
|
|
|
|
|
2011-11-08 06:06:12 -05:00
|
|
|
# Fog.mock!
|
2011-11-03 17:42:56 -04:00
|
|
|
|
2011-11-08 06:06:12 -05:00
|
|
|
clodo = Fog::Compute[:clodo]
|
2011-11-03 17:42:56 -04:00
|
|
|
|
|
|
|
tests('success') do
|
|
|
|
tests('- create_server(541)').formats(@server_create_format) do
|
2011-11-08 06:06:12 -05:00
|
|
|
data = clodo.create_server(541,{:vps_type => 'ScaleServer'}).body['server']
|
2011-11-03 17:42:56 -04:00
|
|
|
@server_id = data['id']
|
|
|
|
data
|
|
|
|
end
|
2011-11-08 06:06:12 -05:00
|
|
|
|
|
|
|
tests('- list_servers(ready)').formats([@server_format]) do
|
|
|
|
clodo.list_servers.body['servers'].reject {|s| !['is_running', 'is_disabled'].include?(s['status']) }
|
|
|
|
end
|
|
|
|
|
|
|
|
tests('- list_servers(not ready)').formats([@server_format.merge({'addresses'=>{'public'=>NilClass}})]) do
|
|
|
|
clodo.list_servers.body['servers'].reject {|s| !['is_request'].include?(s['status']) }
|
|
|
|
end
|
|
|
|
|
|
|
|
clodo.servers.get(@server_id).wait_for { ready? || state == 'is_error' } unless Fog.mocking?
|
|
|
|
|
2011-11-27 15:10:30 -05:00
|
|
|
tests("- add_ip_address(#{@server_id})").succeeds do
|
|
|
|
clodo.add_ip_address(@server_id)
|
2011-11-08 06:06:12 -05:00
|
|
|
end
|
|
|
|
|
2011-11-27 15:10:30 -05:00
|
|
|
# tests("- get_server_details(#{@server_id})").formats(@server_details_format) do
|
|
|
|
# data = clodo.get_server_details(@server_id).body['server']
|
|
|
|
# @additional_ip = data['addresses']['public'].select {|a| !a['primary_ip'] }.first
|
|
|
|
# data
|
|
|
|
# end
|
|
|
|
|
2011-11-08 06:06:12 -05:00
|
|
|
tests("- reboot_server(#{@server_id})").succeeds do
|
|
|
|
clodo.reboot_server(@server_id, :hard)
|
|
|
|
end
|
|
|
|
|
|
|
|
clodo.servers.get(@server_id).wait_for { ready? || state == 'is_error' } unless Fog.mocking?
|
|
|
|
|
2011-11-27 15:10:30 -05:00
|
|
|
# tests("- delete_ip_address(#{@server_id}, #{@additional_ip['ip']})").success do
|
|
|
|
# clodo.delete_ip_address(@server_id, @additional_ip['ip'])
|
|
|
|
# end
|
|
|
|
|
2011-11-08 06:06:12 -05:00
|
|
|
tests("- stop_server(#{@server_id})").succeeds do
|
|
|
|
clodo.stop_server(@server_id)
|
|
|
|
end
|
|
|
|
|
|
|
|
unless Fog.mocking?
|
2011-11-27 15:10:30 -05:00
|
|
|
clodo.servers.get(@server_id).wait_for { state == 'is_disabled' || state == 'is_error' }
|
2011-11-08 06:06:12 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
tests("- start_server(#{@server_id})").succeeds do
|
|
|
|
clodo.start_server(@server_id)
|
|
|
|
end
|
|
|
|
|
|
|
|
clodo.servers.get(@server_id).wait_for { ready? || state == 'is_error' } unless Fog.mocking?
|
|
|
|
|
|
|
|
tests("- delete_server(#{@server_id})").succeeds do
|
|
|
|
clodo.delete_server(@server_id)
|
|
|
|
end
|
2011-11-03 17:42:56 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
tests('failure') do
|
|
|
|
tests('- create_server(0)').raises(Excon::Errors::BadRequest) do
|
2011-11-08 06:06:12 -05:00
|
|
|
data = clodo.create_server(0,{:vps_type => 'ScaleServer'}).body['server']
|
2011-11-03 17:42:56 -04:00
|
|
|
@server_id = data['id']
|
|
|
|
data
|
|
|
|
end
|
2011-11-08 06:06:12 -05:00
|
|
|
|
|
|
|
tests("- reboot_server(0)").raises(Excon::Errors::BadRequest) do
|
|
|
|
clodo.reboot_server(0, :hard)
|
|
|
|
end
|
|
|
|
|
|
|
|
tests("- stop_server(0)").raises(Excon::Errors::BadRequest) do
|
|
|
|
clodo.stop_server(0)
|
|
|
|
end
|
|
|
|
|
|
|
|
tests("- start_server(0)").raises(Excon::Errors::BadRequest) do
|
|
|
|
clodo.start_server(0)
|
|
|
|
end
|
|
|
|
|
2011-11-27 15:10:30 -05:00
|
|
|
## delete_server(0) in actual API, works not as it must,
|
2011-11-08 06:06:12 -05:00
|
|
|
## so I do not include this test in tests sequence.
|
|
|
|
# tests("- delete_server(0)").raises(Fog::Compute::Clodo::NotFound) do
|
|
|
|
# clodo.delete_server(0)
|
|
|
|
# end
|
2011-11-27 15:10:30 -05:00
|
|
|
#
|
|
|
|
# tests("- delete_ip_address(0, 6.6.6.6)").raises(Fog::Compute::Clodo::NotFound) do
|
|
|
|
# clodo.delete_ip_address(0, "6.6.6.6")
|
|
|
|
# end
|
|
|
|
|
|
|
|
tests("- delete_ip_address(#{@server_id}, 6.6.6.6)").raises(Excon::Errors::BadRequest) do
|
|
|
|
clodo.delete_ip_address(@server_id, "6.6.6.6")
|
|
|
|
end
|
|
|
|
|
2011-11-03 17:42:56 -04:00
|
|
|
end
|
|
|
|
end
|