summaryrefslogtreecommitdiffstats
path: root/lib/puppet/type.rb
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2010-09-11 10:23:38 -0500
committerJames Turnbull <james@lovedthanlost.net>2010-09-14 09:22:19 +1000
commit9bdfe694bc6c60a48b45f8dd49c20c6da31445f7 (patch)
tree70e91e31b36bdc27e4338cde6d0a6656b9ffbbb0 /lib/puppet/type.rb
parent14b33402812756dc0cd3e84619afa211d449d59f (diff)
downloadpuppet-9bdfe694bc6c60a48b45f8dd49c20c6da31445f7.tar.gz
puppet-9bdfe694bc6c60a48b45f8dd49c20c6da31445f7.tar.xz
puppet-9bdfe694bc6c60a48b45f8dd49c20c6da31445f7.zip
Fix for Bug #4756 - Providers no longer respect missing features
Restored deleted lines from type.rb and reinstated unit tests
Diffstat (limited to 'lib/puppet/type.rb')
-rw-r--r--lib/puppet/type.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb
index 291179a02..ccb2b492a 100644
--- a/lib/puppet/type.rb
+++ b/lib/puppet/type.rb
@@ -472,6 +472,12 @@ class Type
raise Puppet::Error, "Resource type #{self.class.name} does not support parameter #{name}"
end
+ if provider and ! provider.class.supports_parameter?(klass)
+ missing = klass.required_features.find_all { |f| ! provider.class.feature?(f) }
+ info "Provider %s does not support features %s; not managing attribute %s" % [provider.class.name, missing.join(", "), name]
+ return nil
+ end
+
return @parameters[name] if @parameters.include?(name)
@parameters[name] = klass.new(:resource => self)