Sha256: 0982b28b4a33a2b751925f57f9deb052c714298337313fdd105865d72fed79e9

Contents?: true

Size: 1.19 KB

Versions: 376

Compression:

Stored size: 1.19 KB

Contents

require 'puppet/ssl/certificate_authority'
require 'puppet/file_system/uniquefile'

# This class wraps a given command and invokes it with a CSR name and body to
# determine if the given CSR should be autosigned
#
# @api private
class Puppet::SSL::CertificateAuthority::AutosignCommand

  class CheckFailure < Puppet::Error; end

  def initialize(path)
    @path = path
  end

  # Run the autosign command with the given CSR name as an argument and the
  # CSR body on stdin.
  #
  # @param csr [String] The CSR name to check for autosigning
  # @return [true, false] If the CSR should be autosigned
  def allowed?(csr)
    name = csr.name
    cmd = [@path, name]

    output = Puppet::FileSystem::Uniquefile.open_tmp('puppet-csr') do |csr_file|
      csr_file.write(csr.to_s)
      csr_file.flush

      execute_options = {:stdinfile => csr_file.path, :combine => true, :failonfail => false}
      Puppet::Util::Execution.execute(cmd, execute_options)
    end

    output.chomp!

    Puppet.debug "Autosign command '#{@path}' exit status: #{output.exitstatus}"
    Puppet.debug "Autosign command '#{@path}' output: #{output}"

    case output.exitstatus
    when 0
      true
    else
      false
    end
  end
end

Version data entries

376 entries across 376 versions & 3 rubygems

Version Path
puppet-5.5.22 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.22-x86-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.22-x64-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.22-universal-darwin lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.21 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.21-x86-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.21-x64-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.21-universal-darwin lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.20 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.20-x86-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.20-x64-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.20-universal-darwin lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.19 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.19-x86-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.19-x64-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.19-universal-darwin lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.18 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.18-x86-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.18-x64-mingw32 lib/puppet/ssl/certificate_authority/autosign_command.rb
puppet-5.5.18-universal-darwin lib/puppet/ssl/certificate_authority/autosign_command.rb