Issue #10651 has been updated by Josh Cooper. Status changed from Unreviewed to Investigating Assignee set to Josh Cooper
Hi Ian, Puppet does allow properties to be interpolated in terms of other properties: <pre> modulepath = $confdir/somedir </pre> But it doesn't allow properties to be recursively interpolated (as it leads to the infinite recursion you saw): <pre> modulepath = /otherdir:$modulepath </pre> WIth that said, I can understand why you'd want to do this, especially for things like modulepath, where you want to add to the default set of paths. ---------------------------------------- Bug #10651: Can't augment the default modulepath in puppet.config https://projects.puppetlabs.com/issues/10651 Author: Ian Brandt Status: Investigating Priority: Normal Assignee: Josh Cooper Category: Target version: Affected Puppet version: 2.7.6 Keywords: Branch: With my puppet.config as follows: [main] modulepath = $modulepath:/my/module/path I find `:/my/module/path` is simply dropped: $ puppet apply -e 'notice("$settings::modulepath")' notice: Scope(Class[main]): /Users/ibrandt/.puppet/modules:/usr/share/puppet/modules notice: Finished catalog run in 0.02 seconds I've tried several variations: [main] modulepath = ${modulepath}:/my/module/path ... $ puppet apply -e 'notice("$settings::modulepath")' err: Could not parse /Users/ibrandt/.puppet/puppet.conf: Could not parse '${modulepath}:/my/module/path' notice: Scope(Class[main]): /Users/ibrandt/.puppet/modules:/usr/share/puppet/modules notice: Finished catalog run in 0.02 seconds And: [main] modulepath = ${settings::modulepath}:/my/module/path ... $ puppet apply -e 'notice("$settings::modulepath")' err: Could not parse /Users/ibrandt/.puppet/puppet.conf: Could not parse '${settings::modulepath}:/my/module/path' notice: Scope(Class[main]): /Users/ibrandt/.puppet/modules:/usr/share/puppet/modules notice: Finished catalog run in 0.02 seconds And: [main] modulepath = $settings::modulepath:/my/module/path ... $ puppet apply -e 'notice("$settings::modulepath")' Could not prepare for execution: Could not find value for $settings And: [main] modulepath = /my/module/path:${modulepath} ... $ puppet apply -e 'notice("$settings::modulepath")' err: Could not parse /Users/ibrandt/.puppet/puppet.conf: Could not parse '/my/module/path:${modulepath}' notice: Scope(Class[main]): /Users/ibrandt/.puppet/modules:/usr/share/puppet/modules notice: Finished catalog run in 0.02 seconds And: [main] modulepath = /my/module/path:$modulepath ... $ puppet apply -e 'notice("$settings::modulepath")' /Users/ibrandt/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/sync.rb:214:in `sync_unlock': stack level too deep (SystemStackError) from /Users/ibrandt/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/sync.rb:232:in `synchronize' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:661:in `uninterpolated_value' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:811:in `each_source' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:808:in `each' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:808:in `each_source' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:658:in `uninterpolated_value' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:657:in `catch' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/settings.rb:657:in `uninterpolated_value' ... 2790 levels... from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/lib/puppet/util/command_line.rb:69:in `execute' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/gems/puppet-2.7.6/bin/puppet:4 from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/bin/puppet:19:in `load' from /Users/ibrandt/.rvm/gems/ruby-1.8.7-p352@etp/bin/puppet:19 And: [main] defaultmodulepath = $modulepath modulepath = $defaultmodulepath:/my/module/path ... $ puppet apply -e 'notice("$settings::modulepath")' Could not prepare for execution: Could not find value for $defaultmodulepath -- 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.
