Sha256: bbd2cd886c57c70facb500d8f697a63d52e03858e8890e37658239bce95dbbc6

Contents?: true

Size: 1.06 KB

Versions: 20

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true
require_relative '../../../puppet/transaction/report'
require_relative '../../../puppet/indirector/yaml'

class Puppet::Transaction::Report::Yaml < Puppet::Indirector::Yaml
  include Puppet::Util::SymbolicFileMode

  desc "Store last report as a flat file, serialized using YAML."

  # Force report to be saved there
  def path(name,ext='.yaml')
    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 YAML.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

20 entries across 20 versions & 1 rubygems

Version Path
puppet-8.3.0 lib/puppet/indirector/report/yaml.rb
puppet-8.3.0-x86-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.3.0-x64-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.3.0-universal-darwin lib/puppet/indirector/report/yaml.rb
puppet-8.3.1 lib/puppet/indirector/report/yaml.rb
puppet-8.3.1-x86-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.3.1-x64-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.3.1-universal-darwin lib/puppet/indirector/report/yaml.rb
puppet-8.2.0 lib/puppet/indirector/report/yaml.rb
puppet-8.2.0-x86-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.2.0-x64-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.2.0-universal-darwin lib/puppet/indirector/report/yaml.rb
puppet-8.1.0 lib/puppet/indirector/report/yaml.rb
puppet-8.1.0-x86-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.1.0-x64-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.1.0-universal-darwin lib/puppet/indirector/report/yaml.rb
puppet-8.0.1 lib/puppet/indirector/report/yaml.rb
puppet-8.0.1-x86-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.0.1-x64-mingw32 lib/puppet/indirector/report/yaml.rb
puppet-8.0.1-universal-darwin lib/puppet/indirector/report/yaml.rb