Issue #4915 has been updated by Jordan Sissel.

Agreed. Two things - update the docs for how to call it and also have the 
extlookup() function return a sane error message saying "Pass an array, not a 
string" or something otherwise indicative of what was done wrong.
----------------------------------------
Bug #4915: scope.function_extlookup (in templates) takes an array parameter
http://projects.puppetlabs.com/issues/4915

Author: Jordan Sissel
Status: Needs design decision
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected 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