def delete_snapshot(name)
unless @vm.exists?
return Response.new :code => 1, :message => 'VM does not exist'
end
if Fusion.running?
running_response = @vm.running?
return running_response unless running_response.successful?
unless running_response.data
message = 'A snapshot cannot be deleted when the GUI is running '
message << 'and the VM is not running.'
return Response.new :code => 1, :message => message
end
end
conf_file_response = @vm.conf_file
return conf_file_response unless conf_file_response.successful?
snapshots_response = @vm.snapshots
return snapshots_response unless snapshots_response.successful?
unless snapshots_response.data.include? name
message = "Unable to find a snapshot named '#{name}'."
return Response.new :code => 1, :message => message
end
command = "#{vmrun_cmd} deleteSnapshot "
command << "'#{conf_file_response.data}' \"#{name}\" 2>&1"
command_exec = Fission::Action::ShellExecutor.new command
Response.from_shell_executor command_exec.execute
end