2011-02-17 13:44:46 -05:00
|
|
|
module Fog
|
2011-06-16 19:28:54 -04:00
|
|
|
module Compute
|
|
|
|
class Ecloud
|
2011-02-17 13:44:46 -05:00
|
|
|
class Real
|
2012-06-07 12:50:11 -04:00
|
|
|
basic_request :virtual_machine_delete, 202, 'DELETE'
|
2011-02-17 13:44:46 -05:00
|
|
|
end
|
|
|
|
|
2012-11-27 19:57:16 -05:00
|
|
|
class Mock
|
|
|
|
def virtual_machine_delete(uri)
|
|
|
|
server_id = id_from_uri(uri)
|
|
|
|
|
|
|
|
server = self.data[:servers][server_id]
|
|
|
|
self.data[:servers].delete(server_id)
|
|
|
|
self.data[:groups].values.each do |group|
|
|
|
|
group[:VirtualMachines][:VirtualMachine].delete_if { |s| s[:name] == server[:name] }
|
|
|
|
end
|
|
|
|
self.data[:networks].values.each do |network|
|
|
|
|
network[:IpAddresses][:IpAddress].each do |ip|
|
|
|
|
unless ip[:Host].nil?
|
|
|
|
ip[:Host] = nil if ip[:Host][:name] == server[:name]
|
|
|
|
end
|
|
|
|
unless ip[:DetectedOn].nil?
|
|
|
|
ip[:DetectedOn] = nil if ip[:DetectedOn][:name] == server[:name]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
task_id = Fog::Mock.random_numbers(10)
|
|
|
|
task = {
|
|
|
|
:id => task_id,
|
|
|
|
:href => "/cloudapi/ecloud/tasks/#{task_id}",
|
|
|
|
:type => "application/vnd.tmrk.cloud.task",
|
|
|
|
:Operation => "Delete Server",
|
|
|
|
:Status => "Complete",
|
|
|
|
:ImpactedItem => Fog::Ecloud.keep(server, :name, :href, :type),
|
|
|
|
:StartTime => Time.now.iso8601,
|
|
|
|
:CompletedTime => Time.now.iso8601,
|
|
|
|
:InitiatedBy => {},
|
|
|
|
}
|
|
|
|
self.data[:tasks][task_id] = task
|
|
|
|
|
|
|
|
response(:body => task)
|
|
|
|
end
|
|
|
|
end
|
2011-02-17 13:44:46 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|