diff options
author | Jesse Wolfe <jes5199@gmail.com> | 2010-09-13 23:34:06 -0700 |
---|---|---|
committer | Jesse Wolfe <jes5199@gmail.com> | 2010-09-13 23:34:06 -0700 |
commit | 9e66daa27ce65028f48dd13c67e066d3cc2c766a (patch) | |
tree | 1f878b8c4ee9cb02863f4bdc8ef3f97772da9168 /lib | |
parent | 9e72ccd8ff087d0cf4a1396401e3843311b4e6d4 (diff) | |
parent | cad1e0f69ca19b37901f7f289444feae8f9ebd34 (diff) | |
download | puppet-9e66daa27ce65028f48dd13c67e066d3cc2c766a.tar.gz puppet-9e66daa27ce65028f48dd13c67e066d3cc2c766a.tar.xz puppet-9e66daa27ce65028f48dd13c67e066d3cc2c766a.zip |
Merge commit '2.6.1' into next
Diffstat (limited to 'lib')
-rw-r--r-- | lib/puppet/application/describe.rb | 2 | ||||
-rw-r--r-- | lib/puppet/resource/type.rb | 9 | ||||
-rw-r--r-- | lib/puppet/type.rb | 22 |
3 files changed, 23 insertions, 10 deletions
diff --git a/lib/puppet/application/describe.rb b/lib/puppet/application/describe.rb index 5abe3ea14..e76b347f6 100644 --- a/lib/puppet/application/describe.rb +++ b/lib/puppet/application/describe.rb @@ -130,7 +130,7 @@ class TypeDoc a[0].to_s <=> b[0].to_s }.each { |name, doc| print "\n- **#{name}**" - if type.namevar == name and name != :name + if type.key_attributes.include?(name) and name != :name puts " (*namevar*)" else puts "" diff --git a/lib/puppet/resource/type.rb b/lib/puppet/resource/type.rb index c9ff3237b..3edf286bb 100644 --- a/lib/puppet/resource/type.rb +++ b/lib/puppet/resource/type.rb @@ -235,8 +235,13 @@ class Puppet::Resource::Type resource[param] = value end - scope.setvar("title", resource.title) unless set.include? :title - scope.setvar("name", resource.name.to_s.downcase) unless set.include? :name + if @type == :hostclass + scope.setvar("title", resource.title.to_s.downcase) unless set.include? :title + scope.setvar("name", resource.name.to_s.downcase ) unless set.include? :name + else + scope.setvar("title", resource.title ) unless set.include? :title + scope.setvar("name", resource.name ) unless set.include? :name + end scope.setvar("module_name", module_name) if module_name and ! set.include? :module_name if caller_name = scope.parent_module_name and ! set.include?(:caller_module_name) diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index 291179a02..f9aacece8 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -410,13 +410,15 @@ class Type property = self.newattr(name) - begin - # make sure the parameter doesn't have any errors - property.value = value - rescue => detail - error = Puppet::Error.new("Parameter #{name} failed: #{detail}") - error.set_backtrace(detail.backtrace) - raise error + if property + begin + # make sure the parameter doesn't have any errors + property.value = value + rescue => detail + error = Puppet::Error.new("Parameter #{name} failed: #{detail}") + error.set_backtrace(detail.backtrace) + raise error + end end nil @@ -472,6 +474,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) |