summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/provider.rb')
-rw-r--r--lib/puppet/provider.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/puppet/provider.rb b/lib/puppet/provider.rb
index 6157431bb..9e1dc01a6 100644
--- a/lib/puppet/provider.rb
+++ b/lib/puppet/provider.rb
@@ -222,6 +222,24 @@ class Puppet::Provider
return true
end
+ # Does this provider support the specified parameter?
+ def self.supports_parameter?(param)
+ if param.is_a?(Class)
+ klass = param
+ else
+ unless klass = @model.attrclass(param)
+ raise Puppet::DevError, "'%s' is not a valid parameter for %s" % [param, @model.name]
+ end
+ end
+ return true unless features = klass.required_features
+
+ if satisfies?(*features)
+ return true
+ else
+ return false
+ end
+ end
+
def self.to_s
unless defined? @str
if self.model