Issue #4915 has been updated by Andrew Parker.
Nick, I know this bug is from a long time ago, but functions were always supposed to be passed an array when called from ruby code. It was a fluke of the function and ruby 1.8 that it sometimes worked. There is a change in 3.0.0 that asserts that the function is being passed an array. ---------------------------------------- Bug #4915: scope.function_extlookup (in templates) takes an array parameter https://projects.puppetlabs.com/issues/4915#change-75441 Author: Jordan Sissel Status: Accepted Priority: Normal Assignee: Nick Fagerlund Category: documentation Target version: 2.7.x Affected Puppet version: 2.6.1 Keywords: Branch: This does not work <pre> notice( inline_template("<%= Puppet::Parser::Functions.autoloader.loadall; scope.function_extlookup('hello world') %>") ) Error: Failed to parse inline template: extlookup(): wrong number of arguments (11; must be <= 3) at /home/jls/f.pp:2 on node snack.home </pre> Volcane pointed out that extlookup() expects an array, which made the '11' above pretty obvious as 'hello world'.size == 11. This version works: <pre> notice( inline_template("<%= Puppet::Parser::Functions.autoloader.loadall; scope.function_extlookup(['hello world']) %>") ) Output: notice: Scope(Class[main]): Hello sir! </pre> --- Possible fix: Make extlookup check if the type given is a string, and if so, treat it normally. -- 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.
