Issue #5184 has been reported by Dan Bode.
----------------------------------------
Bug #5184: new referecne syntax cannot be overridden to undef using class
inheritence
https://projects.puppetlabs.com/issues/5184
Author: Dan Bode
Status: Unreviewed
Priority: Normal
Assignee:
Category:
Target version:
Affected Puppet version:
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.