What version of puppet are you using? Also, what do you get if you run it with
--trace?
On Jul 24, 2012, at 11:06 AM, Matthew Probst wrote:
> I'm having a difficult time with a custom function:
>
> module Puppet::Parser::Functions
> newfunction(:subpaths, :type => :rvalue) do |args|
> result = []
> args.flatten.each do |path|
> temp_path = path
> begin
> result << temp_path
> temp_path = File.dirname(temp_path)
> end while (temp_path != "/" and temp_path != ".")
> end
> return result.uniq
> end
> end
>
>
>
> If I try calling this in a Puppet manifest:
>
> class testing {
>
> subpaths("/usr/local/bin")
> subpaths("/usr/local/bin", "/var/log/foo")
> subpaths(["/usr/local/bin","/var/log/foo"])
>
> }
>
>
> and I get that to run on a host, with no other classes called, I get an error
>
> Error 400 on SERVER: can't convert Array into String
>
> I tried changing my custom function to
>
>
> module Puppet::Parser::Functions
> newfunction(:subpaths, :type => :rvalue) do |args|
> return ""
> end
> end
>
>
> and it still does the same thing.
>
>
> I see in the bug tracker that several times in the past the ability to pass
> in arrays has been broken through inadvertent changes, but I see no recent
> discussion on whether you _should_ be able to pass arrays in; in other words,
> it could be an intentional design, in which case I can just try something
> else.
>
> However, when I browse the source code in
> /usr/lib/ruby/site_ruby/1.8/puppet/parser/functions, I don't see any magic in
> the functions that accept arrays, except that many seem to use .flatten on
> the args array passed in.
>
> I tried that in my initial attempt, and it seems that it fails before it even
> gets to calling the custom function.
>
> I've tried looking in the mailing lists and searching the web, but most
> mentions of this seem to be for older pre-2.x versions of Puppet.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" 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-dev?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" 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-dev?hl=en.