module Puppet::X509::PemStore
Methods for managing PEM encoded files. While PEM encoded strings are always ASCII, the files may contain user specified comments, so they are UTF-8 encoded.
@api private
Public Instance Methods
Delete a pem encoded object, if it exists.
@param path [String] The file path to delete @return [Boolean] Returns true if the file was deleted, false otherwise @raise [Errno::EACCES] if permission is denied @api private
# File lib/puppet/x509/pem_store.rb 49 def delete_pem(path) 50 Puppet::FileSystem.unlink(path) 51 true 52 rescue Errno::ENOENT 53 false 54 end
Load a pem encoded object.
@param path [String] file path @return [String, nil] The PEM encoded object or nil if the
path does not exist
@raise [Errno::EACCES] if permission is denied @api private
# File lib/puppet/x509/pem_store.rb 16 def load_pem(path) 17 Puppet::FileSystem.read(path, encoding: 'UTF-8') 18 rescue Errno::ENOENT 19 nil 20 end
Save pem encoded content to a file. If the file doesn't exist, it will be created. Otherwise, the file will be overwritten. In both cases the contents will be overwritten atomically so other processes don't see a partially written file.
@param pem [String] The PEM encoded object to write @param path [String] The file path to write to @raise [Errno::EACCES] if permission is denied @raise [Errno::EPERM] if the operation cannot be completed @api private
# File lib/puppet/x509/pem_store.rb 32 def save_pem(pem, path, owner: nil, group: nil, mode: 0644) 33 Puppet::FileSystem.replace_file(path, mode) do |f| 34 f.set_encoding('UTF-8') 35 f.write(pem.encode('UTF-8')) 36 end 37 38 if !Puppet::Util::Platform.windows? && Puppet.features.root? && (owner || group) 39 FileUtils.chown(owner, group, path) 40 end 41 end