# File lib/puppet/transaction.rb, line 243
243:   def prefetch
244:     prefetchers = {}
245:     @catalog.vertices.each do |resource|
246:       if provider = resource.provider and provider.class.respond_to?(:prefetch)
247:         prefetchers[provider.class] ||= {}
248:         prefetchers[provider.class][resource.name] = resource
249:       end
250:     end
251: 
252:     # Now call prefetch, passing in the resources so that the provider instances can be replaced.
253:     prefetchers.each do |provider, resources|
254:       Puppet.debug "Prefetching #{provider.name} resources for #{provider.resource_type.name}"
255:       begin
256:         provider.prefetch(resources)
257:       rescue => detail
258:         puts detail.backtrace if Puppet[:trace]
259:         Puppet.err "Could not prefetch #{provider.resource_type.name} provider '#{provider.name}': #{detail}"
260:       end
261:     end
262:   end