Issue #5184 has been updated by Nan Liu. Subject changed from new referecne syntax cannot be overridden to undef using class inheritence to Shorthand relationship reference syntax cannot be overridden to undef using class inheritance Affected Puppet version set to 2.6.0
This impacts both 2.6, and 2.7. ---------------------------------------- Bug #5184: Shorthand relationship reference syntax cannot be overridden to undef using class inheritance https://projects.puppetlabs.com/issues/5184 Author: Dan Bode Status: Accepted Priority: Normal Assignee: Category: Target version: Affected Puppet version: 2.6.0 Keywords: Branch: The new reference syntax does not seem to work with class inheritence: <pre> class bluetooth { package { 'bluez-libs': ensure => present, }-> package { 'bluez-utils': ensure => present, } } class bluetooth::disable inherits bluetooth { Package['bluez-libs']{before => undef} } include bluetooth::disable </pre> returns the following: <pre> # puppet relat_bug.pp -d --trace info: Loading facts in gem_count info: Loading facts in packages info: Loading facts in has_yum info: Loading facts in yum_version debug: Puppet::Type::Package::ProviderRpm: Executing '/bin/rpm --version' debug: Puppet::Type::Package::ProviderUrpmi: Executing '/bin/rpm -ql rpm' debug: Puppet::Type::Package::ProviderAptrpm: Executing '/bin/rpm -ql rpm' debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm --version' debug: Adding relationship from Package[bluez-libs] to Package[bluez-utils] with 'before' /usr/lib/ruby/site_ruby/1.8/puppet/parser/relationship.rb:41:in `mk_relationship' /usr/lib/ruby/site_ruby/1.8/puppet/parser/relationship.rb:19:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/relationship.rb:18:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/relationship.rb:18:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/relationship.rb:17:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/relationship.rb:17:in `evaluate' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:162:in `evaluate_relationships' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:162:in `each' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:162:in `evaluate_relationships' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:341:in `finish' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:109:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:18:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:77:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:75:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:34:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:193:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:50:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:115:in `main' /usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:35:in `run_command' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:300:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:397:in `exit_on_fail' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:300:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:55:in `execute' /usr/bin/puppet:4 /usr/lib/ruby/site_ruby/1.8/puppet/parser/compiler.rb:21:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:77:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:180:in `benchmark' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:75:in `compile' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/catalog/compiler.rb:34:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:193:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:50:in `find' /usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:115:in `main' /usr/lib/ruby/site_ruby/1.8/puppet/application/apply.rb:35:in `run_command' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:300:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:397:in `exit_on_fail' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:300:in `run' /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:55:in `execute' /usr/bin/puppet:4 undefined method `<<' for :undef:Symbol on node localhost.localdomain </pre> The equivalent using the before metaparameter works <pre> class bluetooth { package { 'bluez-libs': ensure => present, before => Package['bluez-utils'] } package { 'bluez-utils': ensure => present, } } class bluetooth::disable inherits bluetooth { Package['bluez-libs']{before => undef} } include bluetooth::disable </pre> -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
