Josh,

I appreciate the help. Using function_foo(['bar']) rather than 
function_foo('bar') works as expected. I'm sure this will also solve the 
same issue I was having calling a custom function from a Ruby DSL defined 
type.

Cheers,

Adam

On Friday, June 22, 2012 12:01:24 PM UTC-5, Josh Cooper wrote:
>
>
>
> On Fri, Jun 22, 2012 at 9:13 AM, ad <adam.denn...@gmail.com> wrote:
>
>> I just tested this on CentOS/Puppet 2.7.12 with the same result.
>>
>> - Adam 
>>
>>
>> On Friday, June 22, 2012 10:20:52 AM UTC-5, ad wrote:
>>>
>>> This is on Windows running 2.7.16. I haven't tested on Linux or other 
>>> versions. I'm still relatively new to Puppet and haven't used custom 
>>> functions before, so wanted to run this by the list before filing a bug.
>>>
>>> When calling custom functions from functions, arguments are being 
>>> converted to decimal arrays. That is, passing the argument 'bar' from a 
>>> custom function to another function results in 
>>>
>>> arg[0]: 98
>>> arg[1]: 97
>>> arg[2]: 114
>>>
>>> Here's a full example in case I'm doing something wrong here.
>>>
>>> Function 1:
>>>
>>> module Puppet::Parser::Functions
>>>   newfunction(:foo) do |args|
>>>     puts 'args[0]:' + args[0].to_s
>>>     puts 'args.size:' + args.size.to_s
>>>   end
>>> end
>>>
>>> Function 2:
>>>
>>> module Puppet::Parser::Functions
>>>   newfunction(:foo2) do |args|
>>>     Puppet::Parser::Functions.**autoloader.loadall
>>>     function_foo('from_function')
>>>
>>
> Since you are calling foo with a single argument, I believe the args in 
> function foo is a string, not an array. If you instead say 
> `function_foo(['from_function'])`, it should do what function foo expects.
>
>   end
>>> end
>>>
>>> A manifest:
>>>
>>> foo('from_manifest')
>>> foo2()
>>>
>>> Puppet Agent run Result:
>>>
>>> args[0]:from_manifest
>>> args.size:1
>>> args[0]:102
>>> args.size:13
>>>
>>> 13 is the string length of 'from_function', and 102 is the decimal 
>>> representation of 'f'.
>>>
>>> - Adam
>>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Puppet Users" group.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msg/puppet-users/-/-eqfuh4NRI0J.
>>
>> To post to this group, send email to puppet-users@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> puppet-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/puppet-users?hl=en.
>>
>
> -- 
> Josh Cooper
> Developer, Puppet Labs
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/Hr7CuBWk-LgJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to