# File lib/puppet/provider/package/yum.rb, line 24
24:     def self.prefetch(packages)
25:         if Process.euid != 0
26:             raise Puppet::Error, "The yum provider can only be used as root"
27:         end
28:         super
29:         return unless packages.detect { |name, package| package.should(:ensure) == :latest }
30: 
31:          # collect our 'latest' info
32:          updates = {}
33:          python(YUMHELPER).each_line do |l|
34:              l.chomp!
35:              next if l.empty?
36:              if l[0,4] == "_pkg"
37:                  hash = nevra_to_hash(l[5..-1])
38:                  [hash[:name], "#{hash[:name]}.#{hash[:arch]}"].each  do |n|
39:                      updates[n] ||= []
40:                      updates[n] << hash
41:                  end
42:              end
43:          end
44: 
45:          # Add our 'latest' info to the providers.
46:          packages.each do |name, package|
47:              if info = updates[package[:name]]
48:                  package.provider.latest_info = info[0]
49:              end
50:          end
51:     end