I''m trying to use regex to install the appropriate kernel-devel packaged, based on what kernel the system has installed, running puppet-0.25.3-2 (EPEL version for RHEL4). Here is what I''m doing: package { "kernel-development": ensure => "present", name => $kernelrelease ? { /^(.*)ELlargesmp$/ => "kernel-largesmp-devel", /^.*\.(ELhugemem)$/ => "kernel-hugemem-devel", /.*ELsmp.*/ => "kernel-smp-devel", default => "kernel-devel", }, } I''ve left several versions of my attempts at matching in the above snippet to show what I''ve tried, but none of it seems to work. Here''s what facter shows on the system: # facter | grep kernelrelease kernelrelease => 2.6.9-89.0.19.ELlargesmp No matter what I''ve tried, it always falls through to the default. I have even done /^(2.6.9-89.0.19.ELlargesmp)$/ and it doesn''t accept it. So what am I doing wrong? -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- 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.
Hi, On Wed, 2010-03-03 at 10:50 -0600, James Cammarata wrote:> I''m trying to use regex to install the appropriate kernel-devel packaged, > based on what kernel the system has installed, running puppet-0.25.3-2 > (EPEL version for RHEL4). > > Here is what I''m doing: > > package { "kernel-development": > ensure => "present", > name => $kernelrelease ? { > /^(.*)ELlargesmp$/ => "kernel-largesmp-devel", > /^.*\.(ELhugemem)$/ => "kernel-hugemem-devel", > /.*ELsmp.*/ => "kernel-smp-devel", > default => "kernel-devel", > }, > } > > > I''ve left several versions of my attempts at matching in the above snippet > to show what I''ve tried, but none of it seems to work. Here''s what facter > shows on the system: > > # facter | grep kernelrelease > kernelrelease => 2.6.9-89.0.19.ELlargesmp > > > No matter what I''ve tried, it always falls through to the default. I have > even done /^(2.6.9-89.0.19.ELlargesmp)$/ and it doesn''t accept it. So what > am I doing wrong?You''re seeing bug #3229: http://projects.reductivelabs.com/issues/3229 The workaround until we fix the issue is to write your regex in lower case: package { "kernel-development":> ensure => "present", > name => $kernelrelease ? { > /^(.*)ellargesmp$/ => "kernel-largesmp-devel", > /^.*\.(elhugemem)$/ => "kernel-hugemem-devel", > /.*elsmp.*/ => "kernel-smp-devel", > default => "kernel-devel", > }, > }Hope that helps, -- Brice Figureau Follow the latest Puppet Community evolutions on www.planetpuppet.org! -- 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.
On Wed, 03 Mar 2010 18:01:33 +0100, Brice Figureau <brice-puppet@daysofwonder.com> wrote:> > You''re seeing bug #3229: > http://projects.reductivelabs.com/issues/3229 > > The workaround until we fix the issue is to write your regex in lower > case: > package { "kernel-development": >> ensure => "present", >> name => $kernelrelease ? { >> /^(.*)ellargesmp$/ => "kernel-largesmp-devel", >> /^.*\.(elhugemem)$/ => "kernel-hugemem-devel", >> /.*elsmp.*/ => "kernel-smp-devel", >> default => "kernel-devel", >> }, >> } > > Hope that helps,Yep, that did it :) I did the following and it''s working: package { "kernel-development": ensure => "present", name => $kernelrelease ? { /^.*\.(EL|el)largesmp$/ => "kernel-largesmp-devel", /^.*\.(EL|el)hugemem$/ => "kernel-hugemem-devel", /^.*\.(EL|el)smp$/ => "kernel-smp-devel", default => undef, }, } Thanks! -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- 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.
This might just be a style nitpick, but why anchor the start and then .* match? Just start your regexp where you want the match to start. You have a nice anchor at the end so the regexp will optimize backwards from there. Compare readability: On Mar 3, 2010, at 9:09 AM, James Cammarata wrote:> package { "kernel-development": > ensure => "present", > name => $kernelrelease ? { > /^.*\.(EL|el)largesmp$/ => "kernel-largesmp-devel", > /^.*\.(EL|el)hugemem$/ => "kernel-hugemem-devel", > /^.*\.(EL|el)smp$/ => "kernel-smp-devel", > default => undef, > }, > }vs> package { "kernel-development": > ensure => "present", > name => $kernelrelease ? { > /(EL|el)largesmp$/ => "kernel-largesmp-devel", > /(EL|el)hugemem$/ => "kernel-hugemem-devel", > /(EL|el)smp$/ => "kernel-smp-devel", > default => undef, > }, > }-=Eric0 -- 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.
On Wed, 3 Mar 2010 12:46:05 -0800, Eric Sorenson <ahpook@gmail.com> wrote:> This might just be a style nitpick, but why anchor the start and then .* > match? Just start your regexp where you want the match to start. Youhave> a nice anchor at the end so the regexp will optimize backwards fromthere.> Compare readability: > > On Mar 3, 2010, at 9:09 AM, James Cammarata wrote: > >> package { "kernel-development": >> ensure => "present", >> name => $kernelrelease ? { >> /^.*\.(EL|el)largesmp$/ => "kernel-largesmp-devel", >> /^.*\.(EL|el)hugemem$/ => "kernel-hugemem-devel", >> /^.*\.(EL|el)smp$/ => "kernel-smp-devel", >> default => undef, >> }, >> } > > vs > >> package { "kernel-development": >> ensure => "present", >> name => $kernelrelease ? { >> /(EL|el)largesmp$/ => "kernel-largesmp-devel", >> /(EL|el)hugemem$/ => "kernel-hugemem-devel", >> /(EL|el)smp$/ => "kernel-smp-devel", >> default => undef, >> }, >> }Yeah the ^.* isn''t really required, but I did want to leave in the \. to ensure that it starts the match there. Anyways it''s just a few extra characters, I''m not going to sweat it either way. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- 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.