diff options
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/type/pfile.rb | 14 | ||||
-rwxr-xr-x | lib/puppet/type/pfile/checksum.rb | 13 | ||||
-rwxr-xr-x | lib/puppet/type/pfile/source.rb | 6 |
3 files changed, 26 insertions, 7 deletions
diff --git a/lib/puppet/type/pfile.rb b/lib/puppet/type/pfile.rb index 16193578f..2df134c8e 100644 --- a/lib/puppet/type/pfile.rb +++ b/lib/puppet/type/pfile.rb @@ -484,6 +484,14 @@ module Puppet super end + # This method assumes that the checksum types are all correct, and we + # just want to carry over the value. + def setchecksum(sum) + if @states.include? :checksum + @states[:checksum].checksum = sum + end + end + def stat(refresh = false) if @stat.nil? or refresh == true begin @@ -565,10 +573,10 @@ module Puppet # We put all of the states in separate files, because there are so many # of them. The order these are loaded is important, because it determines # the order they are in the state list. - require 'puppet/type/pfile/ensure' require 'puppet/type/pfile/checksum' - require 'puppet/type/pfile/content' - require 'puppet/type/pfile/source' + require 'puppet/type/pfile/content' # can create the file + require 'puppet/type/pfile/source' # can create the file + require 'puppet/type/pfile/ensure' # can create the file require 'puppet/type/pfile/uid' require 'puppet/type/pfile/group' require 'puppet/type/pfile/mode' diff --git a/lib/puppet/type/pfile/checksum.rb b/lib/puppet/type/pfile/checksum.rb index eac454908..a71e3d7b8 100755 --- a/lib/puppet/type/pfile/checksum.rb +++ b/lib/puppet/type/pfile/checksum.rb @@ -20,6 +20,14 @@ module Puppet @checktypes[0] end + # Because source and content and whomever else need to set the checksum + # and do the updating, we provide a simple mechanism for doing so. + def checksum=(value) + @is = value + @should = [value] + self.updatesum + end + # Checksums need to invert how changes are printed. def change_to_s begin @@ -228,6 +236,7 @@ module Puppet # Store the new sum to the state db. def updatesum + self.warning "Updating" result = false state = nil unless state = @parent.cached(:checksums) @@ -240,10 +249,6 @@ module Puppet error = Puppet::Error.new("%s has invalid checksum" % @parent.name) raise error - #elsif @should == :absent - # error = Puppet::Error.new("%s has invalid 'should' checksum" % - # @parent.name) - # raise error end # if we're replacing, vs. updating diff --git a/lib/puppet/type/pfile/source.rb b/lib/puppet/type/pfile/source.rb index d6a11dd7a..4244080dd 100755 --- a/lib/puppet/type/pfile/source.rb +++ b/lib/puppet/type/pfile/source.rb @@ -275,6 +275,12 @@ module Puppet [@parent.name, detail] end + if @stats.include? :checksum + @parent.setchecksum @stats[:checksum] + else + raise Puppet::DevError, "We're somehow missing the remote checksum" + end + if exists return :file_changed else |