Issue #4915 has been updated by Nick Fagerlund.

It's not obvious to me where or how this should be documented. Does this affect 
any other functions that take more than one argument? If not, why not -- what 
makes extlookup the special case? (And has there been any progress on Nigel's 
decision that we should treat a single string as an array?)
----------------------------------------
Bug #4915: scope.function_extlookup (in templates) takes an array parameter
https://projects.puppetlabs.com/issues/4915

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.

Reply via email to