Issue #4915 has been updated by Jordan Sissel.

File f.pp added

bleh, looks like the ticket system ate my example code. I'll attach a file.
----------------------------------------
Bug #4915: scope.function_extlookup (in templates) requires additional step to 
work
http://projects.puppetlabs.com/issues/4915

Author: Jordan Sissel
Status: Unreviewed
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected version: 
Keywords: 
Branch: 


This does not work

<pre>
notice(
  inline_template("<%= scope.function_extlookup('hello world') %>")
)

Error:
  Failed to parse inline template: undefined method `function_extlookup' for 
#<Puppet::Parser::Scope:0x7f9df63a0b38> at /home/jls/f.pp:2 on node snack.home
</pre>

Someone on IRC pointed out needing to invoke this: 
Puppet::Parser::Functions.autoloader.loadall

Following this instruction, it seems to be the right direction, but still 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>

---

Two unexpected things. First, that I have to call the extra function loader. 
Second, that extlookup in templates requires an array.

Possible fixes: Make extlookup available always. Also, make extlookup check if 
the type given is a string, and if so, treat it normally.

Thoughts?


-- 
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