On 03/31/2016 05:10 PM, Martin Alfke wrote:

You are passing a Hash as an parameter to a define.
Inside the define you expect the parameter to be of type String - according to 
what you do in the define.

You need to take care of splitting data accordingly in your define:
With Puppet 4 this is very easy to achieve:

define basket (
   Hash $arg,
){
   $arg.each |String $key, Hash $value| {
     file { β€œ/tmp/${key}”:
       ensure => file,
       content => $value[β€˜arg’],
     }
   }
}


Thanks for an idea. I didn't know something like that is possible...



Why couldn't I just use create_resources? If I try with create_resources:

create_resources(@basket, $foobar)


I get this:

Error: Could not parse for environment production: Virtual (@) can only be applied to a Resource Expression at /tmp/pero.pp:16:1 on node workstation

--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/56FD423A.2080203%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to