David Campos
2012-May-10 17:54 UTC
[Puppet Users] Problem matching nodes with regular expressions and inheritance
Hello all, I am having a strange problem matching a hierarchy of nodes like the following one: node basenode {> ... > } > node /^diaspora(?:-\d+)?$/ inherits basenode { > ... > } > node /^diaspora15(?:-\d+)?$/ inherits diaspora { > ... > }When I try to instantiate a node that should match the last one (for example diaspora15 or diaspora15-4433) I find that puppet matches that node but is not able to match the parent node. From my knowledge of regular expressions (and checking though rubular), diaspora matches my first regular expression so the inheritance should be complete. I get the following message: Could not find parent resource type ''diaspora'' of type node in production> at /tmp/vagrant-puppet/manifests/diaspora.pp:14 on node diaspora15.scytl.netAlso, when I instantiate a node named diaspora that works.. Any idea of what I am doing wrong? I think that puppet allows that kind of matching. -- 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/-/UV7hjMfzBAAJ. 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.
jcbollinger
2012-May-10 22:15 UTC
[Puppet Users] Re: Problem matching nodes with regular expressions and inheritance
On May 10, 12:54 pm, David Campos <noymn.the.archan...@gmail.com> wrote:> Hello all, > > I am having a strange problem matching a hierarchy of nodes like the > following one: > > node basenode { > > > ... > > } > > node /^diaspora(?:-\d+)?$/ inherits basenode { > > ... > > } > > node /^diaspora15(?:-\d+)?$/ inherits diaspora { > > ... > > } > > When I try to instantiate a node that should match the last one (for > example diaspora15 or diaspora15-4433) I find that puppet matches that node > but is not able to match the parent node. From my knowledge of regular > expressions (and checking though rubular), diaspora matches my first > regular expression so the inheritance should be complete. > > I get the following message: > > Could not find parent resource type ''diaspora'' of type node in production > > > at /tmp/vagrant-puppet/manifests/diaspora.pp:14 on node diaspora15.scytl.net > > Also, when I instantiate a node named diaspora that works.. > > Any idea of what I am doing wrong? I think that puppet allows that kind of > matching.Evidently, you are mistaken. Puppet is not matching the parent node name against your regex nodes; instead it is looking for a node definition bearing exactly that name. Frankly, I don''t find that surprising. You should be able to resolve the problem with a slight juggling of your node definitions: node basenode { ... } node diaspora inherits basenode { ... } node /^diaspora-\d+$/ inherits diaspora { # empty } node /^diaspora15(?:-\d+)?$/ inherits diaspora { ... } There are other variations and altogether different approaches, too, but that''s probably the closest to what you already have. John -- 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.
David Campos
2012-May-11 12:56 UTC
[Puppet Users] Re: Problem matching nodes with regular expressions and inheritance
Thanks, it was the solution that I tried after posting this. I had seen in a puppet bug something about regex matchers at either side of the inherits expression and thought that it could be possible. I had not thought about doing the double definition, the textual one and the regex. Thanks for pointing it out. On Friday, May 11, 2012 12:15:07 AM UTC+2, jcbollinger wrote:> > > > On May 10, 12:54 pm, David Campos <noymn.the.archan...@gmail.com> > wrote: > > Hello all, > > > > I am having a strange problem matching a hierarchy of nodes like the > > following one: > > > > node basenode { > > > > > ... > > > } > > > node /^diaspora(?:-\d+)?$/ inherits basenode { > > > ... > > > } > > > node /^diaspora15(?:-\d+)?$/ inherits diaspora { > > > ... > > > } > > > > When I try to instantiate a node that should match the last one (for > > example diaspora15 or diaspora15-4433) I find that puppet matches that > node > > but is not able to match the parent node. From my knowledge of regular > > expressions (and checking though rubular), diaspora matches my first > > regular expression so the inheritance should be complete. > > > > I get the following message: > > > > Could not find parent resource type ''diaspora'' of type node in > production > > > > > at /tmp/vagrant-puppet/manifests/diaspora.pp:14 on node > diaspora15.scytl.net > > > > Also, when I instantiate a node named diaspora that works.. > > > > Any idea of what I am doing wrong? I think that puppet allows that kind > of > > matching. > > > Evidently, you are mistaken. Puppet is not matching the parent node > name against your regex nodes; instead it is looking for a node > definition bearing exactly that name. Frankly, I don''t find that > surprising. > > You should be able to resolve the problem with a slight juggling of > your node definitions: > > node basenode { > ... > } > > node diaspora inherits basenode { > ... > } > > node /^diaspora-\d+$/ inherits diaspora { > # empty > } > > node /^diaspora15(?:-\d+)?$/ inherits diaspora { > ... > } > > > There are other variations and altogether different approaches, too, > but that''s probably the closest to what you already have. > > > John >-- 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/-/ri6S-ITAoosJ. 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.