# File lib/puppet/type/file/checksum.rb, line 200
200:     def retrieve(usecache = false)
201:         # When the 'source' is retrieving, it passes "true" here so
202:         # that we aren't reading the file twice in quick succession, yo.
203:         currentvalue = currentsum()
204:         return currentvalue if usecache and currentvalue
205: 
206:         stat = nil
207:         return :absent unless stat = @resource.stat
208: 
209:         if stat.ftype == "link" and @resource[:links] != :follow
210:             self.debug "Not checksumming symlink"
211:             # @resource.delete(:checksum)
212:             return currentvalue
213:         end
214: 
215:         # Just use the first allowed check type
216:         currentvalue = getsum(checktype())
217: 
218:         # If there is no sum defined, then store the current value
219:         # into the cache, so that we're not marked as being
220:         # out of sync.  We don't want to generate an event the first
221:         # time we get a sum.
222:         self.updatesum(currentvalue) unless cache(checktype())
223: 
224:         # @resource.debug "checksum state is %s" % self.is
225:         return currentvalue
226:     end