def self.save(hostnames, report, reported_at=nil)
FileUtils.mkdir_p HostReport.spooldir
reported_at ||= Time.now.utc
on_disk_report = { "host" => hostnames[0], "report" => report , "reported_at" => reported_at.to_s, "althosts" => hostnames[1..-1] }
temp_fname = unique_filename "new-"
File.open temp_fname, File::WRONLY|File::CREAT|File::EXCL do |tmpfile|
tmpfile.write(on_disk_report.to_json)
end
final_fname = unique_filename("ureport-" + DateTime.now.strftime("%FT%T") + "-")
File.link temp_fname, final_fname
File.unlink temp_fname
end