summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rwxr-xr-xlib/puppet/type/pfile/checksum.rb77
-rwxr-xr-xlib/puppet/type/pfile/ensure.rb1
-rwxr-xr-xlib/puppet/type/pfile/source.rb10
3 files changed, 39 insertions, 49 deletions
diff --git a/lib/puppet/type/pfile/checksum.rb b/lib/puppet/type/pfile/checksum.rb
index 292470d62..33ef14d9b 100755
--- a/lib/puppet/type/pfile/checksum.rb
+++ b/lib/puppet/type/pfile/checksum.rb
@@ -49,6 +49,35 @@ module Puppet
end
end
+ # Retrieve the cached sum
+ def getcachedsum
+ hash = nil
+ unless hash = @parent.cached(:checksums)
+ hash = {}
+ @parent.cache(:checksums, hash)
+ end
+
+ sumtype = @checktypes[0]
+
+ #unless state
+ # self.devfail "Did not get state back from Storage"
+ #end
+
+ if hash.include?(sumtype)
+ #self.notice "Found checksum %s for %s" %
+ # [hash[sumtype] ,@parent[:path]]
+ return hash[sumtype]
+ elsif hash.empty?
+ #self.notice "Could not find sum of type %s" % sumtype
+ return :nosum
+ else
+ #self.notice "Found checksum for %s but not of type %s" %
+ # [@parent[:path],sumtype]
+ return :nosum
+ end
+ end
+
+ # Calculate the sum from disk.
def getsum(checktype)
sum = ""
case checktype
@@ -117,44 +146,7 @@ module Puppet
@checktypes << value
- hash = nil
- unless hash = @parent.cached(:checksums)
- hash = {}
- @parent.cache(:checksums, hash)
- end
-
- #unless state
- # self.devfail "Did not get state back from Storage"
- #end
-
- if hash.include?(value)
- #self.notice "Found checksum %s for %s" %
- # [hash[value] ,@parent[:path]]
- return hash[value]
- elsif hash.empty?
- #self.notice "Could not find sum of type %s" % @checktypes[0]
- return :nosum
- else
- #self.notice "Found checksum for %s but not of type %s" %
- # [@parent[:path],@checktypes[0]]
- return :nosum
- end
-# if hash = state[@parent[:path]]
-# if hash.include?(value)
-# #self.notice "Found checksum %s for %s" %
-# # [hash[value] ,@parent[:path]]
-# return hash[value]
-# else
-# #self.notice "Found checksum for %s but not of type %s" %
-# # [@parent[:path],@checktypes[0]]
-# return :nosum
-# end
-# else
-# # We can't use :absent here, because then it'll match on
-# # non-existent files
-# #self.notice "Could not find sum of type %s" % @checktypes[0]
-# return :nosum
-# end
+ return getcachedsum()
end
# Even though they can specify multiple checksums, the insync?
@@ -178,11 +170,18 @@ module Puppet
# Just use the first allowed check type
@is = getsum(@checktypes[0])
+ # @should should always be set, so if it's not set at all, we
+ # know we haven't looked in the cache yet.
+ unless defined? @should and ! @should.nil?
+ @should = [getcachedsum()]
+ end
+
# If there is no should defined, then store the current value
# into the 'should' value, so that we're not marked as being
# out of sync. We don't want to generate an event the first
# time we get a sum.
- if ! defined? @should or @should == [:nosum]
+ if @should == [:nosum]
+ self.warning "updatingness from %s" % @should.inspect
@should = [@is]
# FIXME we should support an updatechecksums-like mechanism
self.updatesum
diff --git a/lib/puppet/type/pfile/ensure.rb b/lib/puppet/type/pfile/ensure.rb
index 74a75808e..4659b44fe 100755
--- a/lib/puppet/type/pfile/ensure.rb
+++ b/lib/puppet/type/pfile/ensure.rb
@@ -56,6 +56,7 @@ module Puppet
Dir.mkdir(@parent.name)
end
}
+ @parent.setchecksum
return :directory_created
end
diff --git a/lib/puppet/type/pfile/source.rb b/lib/puppet/type/pfile/source.rb
index 4244080dd..0370106df 100755
--- a/lib/puppet/type/pfile/source.rb
+++ b/lib/puppet/type/pfile/source.rb
@@ -129,16 +129,6 @@ module Puppet
end
@should = [@stats[:checksum]]
-
- #if state = @parent.state(:ensure)
- # unless state.should == "file"
- # self.notice(
- # "File %s had both create and source enabled" %
- # @parent.name
- # )
- # @parent.delete(:ensure)
- # end
- #end
# If we're a directory, then do not copy anything, and instead just
# create the directory using the 'create' state.
when "directory":