Looking up the use of create_resources which is mentioned in the bug you linked, looks like it's available only in 2.7.x. I'm currently running 2.6.9, but may be worth upgrading for.
I tried you suggestion, but get this error... err: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid tag "dump_dir/backups/redmine- sqldumpsdatabasesredminebackup_dir/var/www/rails/redmine" at /etc/ puppet/modules/backuppc/manifests/definitions/sqldump.pp:11 on node ... Also I am not sure what you mean by "functions that get an array of first level hash keys". Thanks - Trey On Aug 11, 5:59 pm, Nan Liu <n...@puppetlabs.com> wrote: > On Thu, Aug 11, 2011 at 4:00 PM, treydock <treyd...@gmail.com> wrote: > > I have a module for backuppc, and am trying to pass a hash to a define > > to create a single script and the necessary directories. What I can't > > seem to figure out how to do is have this hash's values be used to > > create files / directories and also populate a template. > > > Here's the hash... > > > $backuppc_db_dumps = { > > redmine => { > > 'backup_dir' => '/var/www/rails/redmine', > > 'databases' => 'redmine', > > 'dump_dir' => '/backups/misc-sqldumps', > > }, > > general => { > > 'backup_dir' => '/etc', > > 'databases' => 'mysql', > > 'dump_dir' => '/backups/misc-sqldumps', > > }, > > } > > > I have successfully used that to with a template to generate a script, > > but am unsure how to pass those values to a define in order to ensure > > the "dump_dir" exists. > > > After the above variable I added > > > backuppc::sqldump { $backuppc_db_dumps: } > > You are passing a hash as the resource title, a resource title is > either a string or array of string. > > > Here's the define ... > > > define backuppc::sqldump () { > > > file { > > "$name[dump_dir]": > > ensure => directory, > > owner => 'root', > > group => 'root', > > mode => '0770', > > } > > } > > > Is this something that's even possible? The error I get doesn't make > > any sense to me... > > Not in the current form, what you are looking for is probably best > described here:http://projects.puppetlabs.com/issues/8670 > > However a small change should allow this to work. (disclaimer, > untested, but I've done something similar). > > define backuppc::sqldump ($var) { > $value = $var[$name] > file { > "$value[dump_dir]": > ensure => directory, > owner => 'root', > group => 'root', > mode => '0770', > } > > } > > backuppc::sqldump { ['redmine', 'general']: > var =>$backuppc_db_dumps, > > } > > If you have a functions that gets an array of the first level hash > keys, you can use that instead of specifying redmine, general. > > HTH, > > Nan -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. 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.