mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
46 lines
1.5 KiB
Ruby
46 lines
1.5 KiB
Ruby
module Fog
|
|
module Compute
|
|
class Ecloud
|
|
class Real
|
|
basic_request :virtual_machine_delete, 202, 'DELETE'
|
|
end
|
|
|
|
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
|
|
end
|
|
end
|
|
end
|