Im using a parameterized class in my site.pp: class development($user) { class{"basenode": user => $user} class{"nodejs": user => $user} include "coffeescript" include "ruby" } This class defines nodejs class that epects a user as input: class nodejs($user) { class {"nodejs::npm": user => $user} $node_ver = "v0.4.7" $node_tar = "node-$node_ver.tar.gz" # ... } The first time I run this all works fine, still on the second run Im getting: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass user to Class[Nodejs] at /etc/puppet/modules/nodejs/manifests/init.pp:1 on node When I touch the site.pp file or restart puppet master all things work again, any idea what Im doing wrong? Thanks Ronen -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Ronen, Have you tried grepping through all your content to make sure your not using ''include "nodejs"'' elsewhere - or some other usage of it where you are not specifying user. You might be seeing non-deterministic class loading order which may be why your symptoms are intermittent. ken. On Sat, Jun 4, 2011 at 6:56 PM, Ronen Narkis <narkisr@gmail.com> wrote:> Im using a parameterized class in my site.pp: > > class development($user) { > class{"basenode": user => $user} > class{"nodejs": user => $user} > include "coffeescript" > include "ruby" > } > > This class defines nodejs class that epects a user as input: > > class nodejs($user) { > > class {"nodejs::npm": user => $user} > > $node_ver = "v0.4.7" > $node_tar = "node-$node_ver.tar.gz" > > > # ... > } > > > The first time I run this all works fine, still on the second run Im > getting: > > err: Could not retrieve catalog from remote server: Error 400 on SERVER: > Must pass user to Class[Nodejs] at > /etc/puppet/modules/nodejs/manifests/init.pp:1 on node > > When I touch the site.pp file or restart puppet master all things work > again, any idea what Im doing wrong? > > Thanks > Ronen > > -- > 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+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Amazing! Iv somehow missed that :) There was another include that missed my eyes (never include within an init.pp above a class) Thank you! Ronen On Sat, Jun 4, 2011 at 11:16 PM, Ken Barber <ken@puppetlabs.com> wrote:> Ronen, > > Have you tried grepping through all your content to make sure your not > using ''include "nodejs"'' elsewhere - or some other usage of it where > you are not specifying user. You might be seeing non-deterministic > class loading order which may be why your symptoms are intermittent. > > ken. > > On Sat, Jun 4, 2011 at 6:56 PM, Ronen Narkis <narkisr@gmail.com> wrote: > > Im using a parameterized class in my site.pp: > > > > class development($user) { > > class{"basenode": user => $user} > > class{"nodejs": user => $user} > > include "coffeescript" > > include "ruby" > > } > > > > This class defines nodejs class that epects a user as input: > > > > class nodejs($user) { > > > > class {"nodejs::npm": user => $user} > > > > $node_ver = "v0.4.7" > > $node_tar = "node-$node_ver.tar.gz" > > > > > > # ... > > } > > > > > > The first time I run this all works fine, still on the second run Im > > getting: > > > > err: Could not retrieve catalog from remote server: Error 400 on SERVER: > > Must pass user to Class[Nodejs] at > > /etc/puppet/modules/nodejs/manifests/init.pp:1 on node > > > > When I touch the site.pp file or restart puppet master all things work > > again, any idea what Im doing wrong? > > > > Thanks > > Ronen > > > > -- > > 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+unsubscribe@googlegroups.com. > > For more options, visit this group at > > http://groups.google.com/group/puppet-users?hl=en. > > > > -- > 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+unsubscribe@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > >-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.