Re: [Puppet Users] Re: Passing hash as parameters to manifest

2014-01-16 Thread Reinaldo Lima
Nan Liu,

this help me A LOT,

thank you so much!

On Thursday, August 11, 2011 11:11:31 PM UTC-3, Nan Liu wrote:

 On Thu, Aug 11, 2011 at 7:19 PM, treydock trey...@gmail.com javascript: 
 wrote:
  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.

 Pretty sure you can be backport to 2.6 since it's just a function:

 https://github.com/puppetlabs/puppetlabs-create_resources

  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 ...

 Can't say for sure without more code, but this simple example should
 demonstrate how this works:

 $myhash = {
   var1 = {
 message = 'hi'
   },
   var2 = {
 message = 'bye'
   }
 }

 define my_notify ($var) {
   notify { $name:
 message = $var[$name]['message']
   }
 }

 my_notify { ['var1', 'var2']:
   var = $myhash
 }

  Also I am not sure what you mean by functions that get an array of
  first level hash keys.

 I mean if you need this to work with any hash without manually
 providing an array of resource titles write a custom puppet function
 that returns hash keys as a custom puppet function.

 Thanks,

 Nan



-- 
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 puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/1d28b4c4-2d57-4309-86f5-659a8770cb29%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


[Puppet Users] Re: Passing hash as parameters to manifest

2011-08-11 Thread treydock
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.



Re: [Puppet Users] Re: Passing hash as parameters to manifest

2011-08-11 Thread Nan Liu
On Thu, Aug 11, 2011 at 7:19 PM, treydock treyd...@gmail.com wrote:
 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.

Pretty sure you can be backport to 2.6 since it's just a function:

https://github.com/puppetlabs/puppetlabs-create_resources

 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 ...

Can't say for sure without more code, but this simple example should
demonstrate how this works:

$myhash = {
  var1 = {
message = 'hi'
  },
  var2 = {
message = 'bye'
  }
}

define my_notify ($var) {
  notify { $name:
message = $var[$name]['message']
  }
}

my_notify { ['var1', 'var2']:
  var = $myhash
}

 Also I am not sure what you mean by functions that get an array of
 first level hash keys.

I mean if you need this to work with any hash without manually
providing an array of resource titles write a custom puppet function
that returns hash keys as a custom puppet function.

Thanks,

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.