[Puppet Users] Some advice on using hashes in ERB templates needed

2010-04-30 Thread Bernd Adamowicz
Hi all,

I'm working with Puppet version 0.25.4 and as far as I have read in this list 
it's not possible to access complex data structures from within an ERB 
template, instead serializing is needed. Due to my lack of Ruby knowledge I 
didn't find the right solution for this problem:

Given this Yaml (coming out of an external node definition):

---
classes:
 - vim
 - users
 - templates_eval::testvars
environment: test
parameters:
  workers:
bo-01-010101:
type: ajp13
host: myhostname.net

Now I want to iterate over the 'workers' inside the ERB template and tried 
(among others) this:

 16 % workers.each do |worker| -%
 17 %= @m_worker = Marshal.load(worker) %
 18 worker.%= worker %.type=%= @m_worker.type %
 ...
 25 
 26 % end -%

Accessing the 'workers' hash works, but accessing 'worker.type' and 
'worker.host' not. I guess I will have to learn Ruby now ;-) but in the 
meantime, can some Ruby expert please tell me how to do this? Thanks a lot in 
advance!

Bernd

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@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] Some advice on using hashes in ERB templates needed

2010-04-30 Thread Michael DeHaan

 Now I want to iterate over the 'workers' inside the ERB template and tried 
 (among others) this:

     16 % workers.each do |worker| -%
     17 %= @m_worker = Marshal.load(worker) %
     18 worker.%= worker %.type=%= @m_worker.type %
     ...
     25
     26 % end -%

 Accessing the 'workers' hash works, but accessing 'worker.type' and 
 'worker.host' not. I guess I will have to learn Ruby now ;-) but in the 
 meantime, can some Ruby expert please tell me how to do this? Thanks a lot in 
 advance!

 Bernd


worker['type'] and worker['host'] is the way the Ruby should look.

--Michael

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@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] Some advice on using hashes in ERB templates needed

2010-04-30 Thread Michael DeHaan
On Fri, Apr 30, 2010 at 9:18 AM, Michael DeHaan mich...@puppetlabs.com wrote:

 Now I want to iterate over the 'workers' inside the ERB template and tried 
 (among others) this:

     16 % workers.each do |worker| -%
     17 %= @m_worker = Marshal.load(worker) %
     18 worker.%= worker %.type=%= @m_worker.type %
     ...
     25
     26 % end -%

 Accessing the 'workers' hash works, but accessing 'worker.type' and 
 'worker.host' not. I guess I will have to learn Ruby now ;-) but in the 
 meantime, can some Ruby expert please tell me how to do this? Thanks a lot 
 in advance!

 Bernd


 worker['type'] and worker['host'] is the way the Ruby should look.


Also, you shouldn't need Marshal.load and the @m_worker either.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@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.