diff options
-rw-r--r-- | lib/puppet/transaction.rb | 2 | ||||
-rwxr-xr-x | spec/unit/transaction.rb | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/puppet/transaction.rb b/lib/puppet/transaction.rb index f3defb7a2..43ba8582c 100644 --- a/lib/puppet/transaction.rb +++ b/lib/puppet/transaction.rb @@ -480,7 +480,7 @@ class Transaction @catalog.vertices.each do |resource| if provider = resource.provider and provider.class.respond_to?(:prefetch) prefetchers[provider.class] ||= {} - prefetchers[provider.class][resource.title] = resource + prefetchers[provider.class][resource.name] = resource end end diff --git a/spec/unit/transaction.rb b/spec/unit/transaction.rb index e5ec64054..9122e0eb3 100755 --- a/spec/unit/transaction.rb +++ b/spec/unit/transaction.rb @@ -4,6 +4,21 @@ require File.dirname(__FILE__) + '/../spec_helper' require 'puppet/transaction' +describe Puppet::Transaction do + it "should match resources by name, not title, when prefetching" do + @catalog = Puppet::Node::Catalog.new + @transaction = Puppet::Transaction.new(@catalog) + + # Have both a title and name + resource = Puppet::Type.type(:sshkey).create :title => "foo", :name => "bar", :type => :dsa, :key => "eh" + @catalog.add_resource resource + + resource.provider.class.expects(:prefetch).with("bar" => resource) + + @transaction.prefetch + end +end + describe Puppet::Transaction, " when determining tags" do before do @config = Puppet::Node::Catalog.new |