class Report::Json

Public Instance Methods

path(name,ext='.json') click to toggle source

Force report to be saved there

   # File lib/puppet/indirector/report/json.rb
11 def path(name,ext='.json')
12   Puppet[:lastrunreport]
13 end
save(request) click to toggle source
   # File lib/puppet/indirector/report/json.rb
15 def save(request)
16   filename = path(request.key)
17   mode = Puppet.settings.setting(:lastrunreport).mode
18 
19   unless valid_symbolic_mode?(mode)
20     raise Puppet::DevError, _("replace_file mode: %{mode} is invalid") % { mode: mode }
21   end
22 
23   mode = symbolic_mode_to_int(normalize_symbolic_mode(mode))
24 
25   FileUtils.mkdir_p(File.dirname(filename))
26 
27   begin
28     Puppet::FileSystem.replace_file(filename, mode) do |fh|
29       fh.print JSON.dump(request.instance)
30     end
31   rescue TypeError => detail
32     Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: self.name, request: request.key, detail: detail }
33   end
34 end