Sha256: 3b07aceddd3a65f13123b1f2868c9e5703ccdc7131d9ff12db9efdca3a426112
Contents?: true
Size: 1.06 KB
Versions: 8
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true require_relative '../../../puppet/transaction/report' require_relative '../../../puppet/indirector/json' class Puppet::Transaction::Report::Json < Puppet::Indirector::JSON include Puppet::Util::SymbolicFileMode desc "Store last report as a flat file, serialized using JSON." # Force report to be saved there def path(name, ext = '.json') Puppet[:lastrunreport] end def save(request) filename = path(request.key) mode = Puppet.settings.setting(:lastrunreport).mode unless valid_symbolic_mode?(mode) raise Puppet::DevError, _("replace_file mode: %{mode} is invalid") % { mode: mode } end mode = symbolic_mode_to_int(normalize_symbolic_mode(mode)) FileUtils.mkdir_p(File.dirname(filename)) begin Puppet::FileSystem.replace_file(filename, mode) do |fh| fh.print JSON.dump(request.instance) end rescue TypeError => detail Puppet.err _("Could not save %{indirection} %{request}: %{detail}") % { indirection: self.name, request: request.key, detail: detail } end end end
Version data entries
8 entries across 8 versions & 1 rubygems