1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ibm/requests/compute/delete_instance.rb
2012-03-20 23:40:16 -04:00

52 lines
1.5 KiB
Ruby

module Fog
module Compute
class IBM
class Real
# Deletes the Instance that the authenticated user manages with the specified :instance_id
#
# ==== Parameters
# * instance_id<~String> - Id of instance
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# *'success'<~Bool>: true or false for success
def delete_instance(instance_id)
request(
:method => 'DELETE',
:expects => 200,
:path => "/instances/#{instance_id}"
)
end
end
class Mock
def delete_instance(instance_id)
response = Excon::Response.new
if deleteable? instance_id
# remove from memoreeeez.
self.data[:instances].delete instance_id
response.body = { 'success' => true }
response.status = 200
else
# TODO: we should really return a 412 if the instance is in an invalid state, and a 404 if it doesn't exist.
response.status = 404
end
response
end
# we can't delete the instance if it doesn't exist, or is in an invalid state.
def deleteable?(instance_id)
return false unless instance_exists? instance_id
instance = self.data[:instances][instance_id]
return false if [0, 1, 7, 14, 15].include?(instance["status"].to_i)
true
end
end
end
end
end