From 2a3f56cc91a38cc6046aeb7f301058561d8d55f7 Mon Sep 17 00:00:00 2001 From: luke Date: Sun, 18 Mar 2007 18:00:26 +0000 Subject: Fixing #529 -- specified targets keep their values. The problem was that I was using model[:target] instead of model.should(:target) and model.is(:target). The real problem was that my tests were using a parameter for tests but all of the real code uses properties. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2290 980ebf18-57e1-0310-9a29-db15c13687c0 --- lib/puppet/provider/parsedfile.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/puppet/provider/parsedfile.rb b/lib/puppet/provider/parsedfile.rb index bb6546095..3c1ee0943 100755 --- a/lib/puppet/provider/parsedfile.rb +++ b/lib/puppet/provider/parsedfile.rb @@ -195,6 +195,11 @@ class Puppet::Provider::ParsedFile < Puppet::Provider target_records = prefetch_hook(target_records) end + unless target_records + raise Puppet::DevError, "Prefetch hook for provider %s returned nil" % + self.name + end + @records += target_records # Set current property on any existing resource instances. @@ -264,7 +269,13 @@ class Puppet::Provider::ParsedFile < Puppet::Provider # Lastly, check the file from any model instances self.model.each do |model| - targets << model[:target] + targets << model.value(:target) + + # This is only the case for properties, and targets should always + # be properties. + if model.respond_to?(:is) + targets << model.is(:target) + end end targets.uniq.reject { |t| t.nil? } -- cgit