The #2627 fix was modifying nodename in case of string nodename, but was removing '_'. Since underscores is a valid character in a class name, we now allow it.
Signed-off-by: Brice Figureau <[email protected]> --- lib/puppet/parser/ast/leaf.rb | 2 +- spec/unit/parser/ast/leaf.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/lib/puppet/parser/ast/leaf.rb b/lib/puppet/parser/ast/leaf.rb index 2f00ea7..153120a 100644 --- a/lib/puppet/parser/ast/leaf.rb +++ b/lib/puppet/parser/ast/leaf.rb @@ -102,7 +102,7 @@ class Puppet::Parser::AST end def to_classname - to_s.downcase.gsub(/[^-a-zA-Z0-9:.]/,'').sub(/^\.+/,'') + to_s.downcase.gsub(/[^-\w:.]/,'').sub(/^\.+/,'') end # implementing eql? and hash so that when an HostName is stored diff --git a/spec/unit/parser/ast/leaf.rb b/spec/unit/parser/ast/leaf.rb index 69b704a..e968150 100755 --- a/spec/unit/parser/ast/leaf.rb +++ b/spec/unit/parser/ast/leaf.rb @@ -195,6 +195,16 @@ describe Puppet::Parser::AST::HostName do host.to_classname.should == "klassname" end + it "should preserve '_' in to_classname with a string nodename" do + host = Puppet::Parser::AST::HostName.new( :value => "node_with_underscore") + host.to_classname.should == "node_with_underscore" + end + + it "should preserve '_' in to_classname with a regex nodename" do + host = Puppet::Parser::AST::HostName.new( :value => Puppet::Parser::AST::Regex.new(:value => "/\dnode_with_underscore\.+/") ) + host.to_classname.should == "dnode_with_underscore." + end + it "should return a string usable as classname when calling to_classname" do host = Puppet::Parser::AST::HostName.new( :value => Puppet::Parser::AST::Regex.new(:value => "/^this-is n...@a classname$/") ) host.to_classname.should == "this-isnotaclassname" -- 1.6.4 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en -~----------~----~----~----~------~----~------~--~---
