1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
module Fog
module OpenStack
class Compute
class Real
def delete_server(server_id)
request(
:expects => 204,
:method => 'DELETE',
:path => "servers/#{server_id}"
)
end
end
class Mock
def delete_server(server_id)
response = Excon::Response.new
server = list_servers_detail.body['servers'].find { |srv| srv['id'] == server_id }
if server
if server['status'] == 'BUILD'
response.status = 409
raise(Excon::Errors.status_error({:expects => 204}, response))
else
data[:last_modified][:servers].delete(server_id)
data[:servers].delete(server_id)
response.status = 204
server_groups = data[:server_groups]
if server_groups
group_id, = server_groups.find { |_id, grp| grp[:members].include?(server_id) }
server_groups[group_id][:members] -= [server_id] if group_id
end
end
response
else
raise Fog::OpenStack::Compute::NotFound
end
end
end
end
end
end
|