summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-03-18 18:00:26 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2007-03-18 18:00:26 +0000
commit2a3f56cc91a38cc6046aeb7f301058561d8d55f7 (patch)
treeb59735414badd0a0144055d193da2fd5bbba33e5 /lib/puppet/provider
parentfe2f0d9ffc2c3fd324d9f85d57ff6a7262a3b185 (diff)
downloadpuppet-2a3f56cc91a38cc6046aeb7f301058561d8d55f7.tar.gz
puppet-2a3f56cc91a38cc6046aeb7f301058561d8d55f7.tar.xz
puppet-2a3f56cc91a38cc6046aeb7f301058561d8d55f7.zip
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
Diffstat (limited to 'lib/puppet/provider')
-rwxr-xr-xlib/puppet/provider/parsedfile.rb13
1 files changed, 12 insertions, 1 deletions
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? }