Sha256: 806870c3d59b2a57db82dd09ef250eed3cd7b71cb31f7c9ee024145661f9f7b3

Contents?: true

Size: 1.01 KB

Versions: 11

Compression:

Stored size: 1.01 KB

Contents

require 'puppet/checksum'
require 'puppet/indirector/file'

class Puppet::Checksum::File < Puppet::Indirector::File
    desc "Store files in a directory set based on their checksums."

    def initialize
        Puppet.settings.use(:filebucket)
    end

    def path(checksum)
        path = []
        path << Puppet[:bucketdir]                              # Start with the base directory
        path << checksum[0..7].split("").join(File::SEPARATOR)  # Add sets of directories based on the checksum
        path << checksum                                        # And the full checksum name itself
        path << "contents"                                      # And the actual file name

        path.join(File::SEPARATOR)
    end

    def save(request)
        path = File.dirname(path(request.key))

        # Make the directories if necessary.
        unless FileTest.directory?(path)
            Puppet::Util.withumask(0007) do
                FileUtils.mkdir_p(path)
            end
        end

        super
    end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
puppet-0.25.5 lib/puppet/indirector/checksum/file.rb
puppet-0.25.4 lib/puppet/indirector/checksum/file.rb
puppet-0.25.3 lib/puppet/indirector/checksum/file.rb
puppet-0.24.9 lib/puppet/indirector/checksum/file.rb
puppet-0.25.2 lib/puppet/indirector/checksum/file.rb
puppet-0.25.1 lib/puppet/indirector/checksum/file.rb
puppet-0.25.0 lib/puppet/indirector/checksum/file.rb
puppet-0.24.5 lib/puppet/indirector/checksum/file.rb
puppet-0.24.6 lib/puppet/indirector/checksum/file.rb
puppet-0.24.7 lib/puppet/indirector/checksum/file.rb
puppet-0.24.8 lib/puppet/indirector/checksum/file.rb