mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
147 lines
3.8 KiB
Ruby
147 lines
3.8 KiB
Ruby
Shindo.tests('Fog::Compute::RackspaceV2 | server_tests', ['rackspace']) do
|
|
|
|
pending if Fog.mocking?
|
|
|
|
LINK_FORMAT = {
|
|
'href' => String,
|
|
'rel' => String
|
|
}
|
|
|
|
SERVER_FORMAT = {
|
|
'id' => String,
|
|
'name' => String,
|
|
'hostId' => Fog::Nullable::String,
|
|
'created' => Fog::Nullable::String,
|
|
'updated' => Fog::Nullable::String,
|
|
'status' => Fog::Nullable::String,
|
|
'progress' => Fog::Nullable::Integer,
|
|
'user_id' => Fog::Nullable::String,
|
|
'tenant_id' => Fog::Nullable::String,
|
|
'links' => [LINK_FORMAT],
|
|
'metadata' => Fog::Nullable::Hash
|
|
}
|
|
|
|
LIST_SERVERS_FORMAT = {
|
|
'servers' => [SERVER_FORMAT]
|
|
}
|
|
|
|
GET_SERVER_FORMAT = {
|
|
'server' => SERVER_FORMAT.merge({
|
|
'accessIPv4' => String,
|
|
'accessIPv6' => String,
|
|
'OS-DCF:diskConfig' => String,
|
|
'rax-bandwidth:bandwidth' => Fog::Nullable::Array,
|
|
'addresses' => Fog::Nullable::Hash,
|
|
'flavor' => {
|
|
'id' => String,
|
|
'links' => [LINK_FORMAT]
|
|
},
|
|
'image' => {
|
|
'id' => String,
|
|
'links' => [LINK_FORMAT]
|
|
}
|
|
})
|
|
}
|
|
|
|
CREATE_SERVER_FORMAT = {
|
|
'server' => {
|
|
'id' => String,
|
|
'adminPass' => String,
|
|
'links' => [LINK_FORMAT],
|
|
'OS-DCF:diskConfig' => String
|
|
}
|
|
}
|
|
|
|
service = Fog::Compute.new(:provider => 'Rackspace', :version => 'V2')
|
|
|
|
tests('success') do
|
|
|
|
server_id = nil
|
|
server_name = 'fog' + Time.now.to_i.to_s
|
|
image_id = '3afe97b2-26dc-49c5-a2cc-a2fc8d80c001' # Ubuntu 11.10
|
|
flavor_id = '2' # 512 MB
|
|
|
|
tests("#create_server(#{server_name}, #{image_id}, #{flavor_id}, 1, 1)").formats(CREATE_SERVER_FORMAT) do
|
|
body = service.create_server(server_name, image_id, flavor_id, 1, 1).body
|
|
server_id = body['server']['id']
|
|
body
|
|
end
|
|
|
|
tests('#list_servers').formats(LIST_SERVERS_FORMAT) do
|
|
service.list_servers.body
|
|
end
|
|
|
|
tests('#get_server').formats(GET_SERVER_FORMAT) do
|
|
service.get_server(server_id).body
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
|
sleep 10
|
|
end
|
|
|
|
tests("#update_server(#{server_id}, #{server_name}_update)").formats(GET_SERVER_FORMAT) do
|
|
service.update_server(server_id, "#{server_name}_update").body
|
|
end
|
|
|
|
tests('#change_server_password').succeeds do
|
|
service.change_server_password(server_id, 'some_server_password')
|
|
end
|
|
|
|
sleep 60
|
|
|
|
tests('#reboot_server').succeeds do
|
|
service.reboot_server(server_id, 'SOFT')
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
|
sleep 10
|
|
end
|
|
|
|
tests('#rebuild_server').succeeds do
|
|
rebuild_image_id = "5cebb13a-f783-4f8c-8058-c4182c724ccd" # Ubuntu 12.04
|
|
service.rebuild_server(server_id, rebuild_image_id)
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
|
sleep 10
|
|
end
|
|
|
|
tests('#resize_server').succeeds do
|
|
resize_flavor_id = 3 # 1GB
|
|
service.resize_server(server_id, resize_flavor_id)
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'VERIFY_RESIZE'
|
|
sleep 10
|
|
end
|
|
|
|
tests('#confirm_resize_server').succeeds do
|
|
service.confirm_resize_server(server_id)
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
|
sleep 10
|
|
end
|
|
|
|
tests('#resize_server').succeeds do
|
|
resize_flavor_id = 2 # 1GB
|
|
service.resize_server(server_id, resize_flavor_id)
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'VERIFY_RESIZE'
|
|
sleep 10
|
|
end
|
|
|
|
tests('#revert_resize_server').succeeds do
|
|
service.revert_resize_server(server_id)
|
|
end
|
|
|
|
until service.get_server(server_id).body['server']['status'] == 'ACTIVE'
|
|
sleep 10
|
|
end
|
|
|
|
tests('#delete_server').succeeds do
|
|
service.delete_server(server_id)
|
|
end
|
|
end
|
|
end
|