diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-03-18 18:00:26 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-03-18 18:00:26 +0000 |
commit | 2a3f56cc91a38cc6046aeb7f301058561d8d55f7 (patch) | |
tree | b59735414badd0a0144055d193da2fd5bbba33e5 /lib/puppet/provider | |
parent | fe2f0d9ffc2c3fd324d9f85d57ff6a7262a3b185 (diff) | |
download | puppet-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-x | lib/puppet/provider/parsedfile.rb | 13 |
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? } |