summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/transaction.rb2
-rwxr-xr-xspec/unit/transaction.rb15
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