Re: [Puppet Users] access exported resources in template
On Friday, September 7, 2012 2:01:13 PM UTC+1, ctrlc-root wrote: > > Well, 3 years old or not, this is still in the first page of google > results haha. I'm running puppet version 2.7.9 and the result of that > template is a blank comment line for every instance of the Firewall::Rule > type. If I replace 'resource[:comment]' with 'resource.type' then I can > confirm that the iteration is actually working, because I see comment lines > like this '# Firewall::Rule'. I tried 'resources["comment"]', > 'resources[:comment]', and 'resources.comment' (with this one triggering an > error). > > I wish there was some easy way to get an interactive ruby shell running > with the same environment so I could actually test this without running > puppet apply every time, if I could I probably would have figured it out on > my own already. If you don't know what the answer is, could you maybe point > me in the general direction of how you would find out? Perhaps a relevant > part of the puppet source code? And thanks for answering. > I just got through Google to this post - have you guys managed to find a final solution for this? -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/fBUhRdGElW8J. 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] access exported resources in template
I don't quite know the answer, and I agree, a running shell would be useful. I'd be looking in Parser::Scope and the TemplateWrapper class, wherever it is. Those should generally cover it, with maybe Parser::Resource. You should try deeper inspection of the resources. I think 'resource.to_hash' should give you all of the resource's parameters. On Sep 7, 2012, at 6:01 AM, ctrlc-root wrote: > Well, 3 years old or not, this is still in the first page of google results > haha. I'm running puppet version 2.7.9 and the result of that template is a > blank comment line for every instance of the Firewall::Rule type. If I > replace 'resource[:comment]' with 'resource.type' then I can confirm that the > iteration is actually working, because I see comment lines like this '# > Firewall::Rule'. I tried 'resources["comment"]', 'resources[:comment]', and > 'resources.comment' (with this one triggering an error). > > I wish there was some easy way to get an interactive ruby shell running with > the same environment so I could actually test this without running puppet > apply every time, if I could I probably would have figured it out on my own > already. If you don't know what the answer is, could you maybe point me in > the general direction of how you would find out? Perhaps a relevant part of > the puppet source code? And thanks for answering. > > On Friday, September 7, 2012 12:52:14 AM UTC-4, Luke Kanies wrote: > Wow, talk about a blast from the past. I don't get a lot of replies to 3 > year old email. :) > > What happens when you do this? It looks like it should basically work, > although I'd use 'resources' instead of 'vertices', I think. What version is > this? > > -- > Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199 > > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/puppet-users/-/XEXWIRbxz9kJ. > 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. -- Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199 -- 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] access exported resources in template
Well, 3 years old or not, this is still in the first page of google results haha. I'm running puppet version 2.7.9 and the result of that template is a blank comment line for every instance of the Firewall::Rule type. If I replace 'resource[:comment]' with 'resource.type' then I can confirm that the iteration is actually working, because I see comment lines like this '# Firewall::Rule'. I tried 'resources["comment"]', 'resources[:comment]', and 'resources.comment' (with this one triggering an error). I wish there was some easy way to get an interactive ruby shell running with the same environment so I could actually test this without running puppet apply every time, if I could I probably would have figured it out on my own already. If you don't know what the answer is, could you maybe point me in the general direction of how you would find out? Perhaps a relevant part of the puppet source code? And thanks for answering. On Friday, September 7, 2012 12:52:14 AM UTC-4, Luke Kanies wrote: > > Wow, talk about a blast from the past. I don't get a lot of replies to 3 > year old email. :) > > What happens when you do this? It looks like it should basically work, > although I'd use 'resources' instead of 'vertices', I think. What version > is this? > > -- > Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | > +1-615-594-8199 > > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/XEXWIRbxz9kJ. 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] access exported resources in template
Wow, talk about a blast from the past. I don't get a lot of replies to 3 year old email. :) What happens when you do this? It looks like it should basically work, although I'd use 'resources' instead of 'vertices', I think. What version is this? On Sep 6, 2012, at 10:14 AM, ctrlc-root wrote: > The resource[:property] method doesn't seem to work. I'm pretty new with > puppet and only just learned ruby, so I was hoping someone could perhaps just > point me in the right direction. Here's what I've got so far: > > <% scope.compiler.catalog.vertices.each do |resource| -%> > <% if resource.type == "Firewall::Rule" -%> > # <%= resource[:comment] %> > <% end -%> > <% end -%> > > where Firewall::Rule is defined something like: > > define firewall::rule ($comment=$title){} > > Any ideas? > > On Wednesday, October 21, 2009 12:55:37 AM UTC-4, Luke Kanies wrote: > On Oct 19, 2009, at 6:19 AM, Bernhard Bock wrote: > > > > Hi, > > > > I'm trying to develop a class that autogenerates a config file based > > on an .erb template. > > It shall populate the config file with data exported from various > > hosts. > > > > Some pseudocode to clarify my issue: > > > > node n1 { > > @@mytype { > > "name": > > property => "foo" > > } > > } > > > > template.erb: > > <% mytype.each do |bar| %> > > <%= bar.name %> > > <%= bar.property %> > > <% end %> > > > > My question is: How can I access and iterate through the exported > > resources in the template? mytype.each will not work... > > > This is getting into semi-supported internal APIs, but you can get the > resource list from the catalog, something like this: > > compiler.catalog.vertices.each do |resource| >resource.title >resource[:property] > end > > -- > What happens to the hole when the cheese is gone? -- Bertolt Brecht > - > Luke Kanies | http://reductivelabs.com | http://madstop.com > > > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/puppet-users/-/1mmfEPyDYj4J. > 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. -- Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199 -- 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] access exported resources in template
The resource[:property] method doesn't seem to work. I'm pretty new with puppet and only just learned ruby, so I was hoping someone could perhaps just point me in the right direction. Here's what I've got so far: <% scope.compiler.catalog.vertices.each do |resource| -%> <% if resource.type == "Firewall::Rule" -%> # <%= resource[:comment] %> <% end -%> <% end -%> where Firewall::Rule is defined something like: define firewall::rule ($comment=$title){} Any ideas? On Wednesday, October 21, 2009 12:55:37 AM UTC-4, Luke Kanies wrote: > > On Oct 19, 2009, at 6:19 AM, Bernhard Bock wrote: > > > > > Hi, > > > > I'm trying to develop a class that autogenerates a config file based > > on an .erb template. > > It shall populate the config file with data exported from various > > hosts. > > > > Some pseudocode to clarify my issue: > > > > node n1 { > > @@mytype { > > "name": > > property => "foo" > > } > > } > > > > template.erb: > > <% mytype.each do |bar| %> > > <%= bar.name %> > > <%= bar.property %> > > <% end %> > > > > My question is: How can I access and iterate through the exported > > resources in the template? mytype.each will not work... > > > This is getting into semi-supported internal APIs, but you can get the > resource list from the catalog, something like this: > > compiler.catalog.vertices.each do |resource| >resource.title >resource[:property] > end > > -- > What happens to the hole when the cheese is gone? -- Bertolt Brecht > - > Luke Kanies | http://reductivelabs.com | http://madstop.com > > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/1mmfEPyDYj4J. 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.
[Puppet Users] access exported resources in template
Hi, I'm trying to develop a class that autogenerates a config file based on an .erb template. It shall populate the config file with data exported from various hosts. Some pseudocode to clarify my issue: node n1 { @@mytype { "name": property => "foo" } } template.erb: <% mytype.each do |bar| %> <%= bar.name %> <%= bar.property %> <% end %> My question is: How can I access and iterate through the exported resources in the template? mytype.each will not work... best regards Bernhard --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---