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.

Reply via email to