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.

Reply via email to