diff options
author | Luke Kanies <luke@madstop.com> | 2009-10-18 17:06:28 -0700 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2009-10-18 17:06:28 -0700 |
commit | 6ba122f62bf22c955a6923604a46a8ab22d8770b (patch) | |
tree | 251e36e5753ea15af4a3da4afaea2778fbaa5114 | |
parent | bca3b70437666a8b840af032cab20fc1ea4f18a2 (diff) | |
download | puppet-6ba122f62bf22c955a6923604a46a8ab22d8770b.tar.gz puppet-6ba122f62bf22c955a6923604a46a8ab22d8770b.tar.xz puppet-6ba122f62bf22c955a6923604a46a8ab22d8770b.zip |
Fixing #2735 - node classes are immed. added to classlist
This commit adds any external node classes to the classlist
at compiler initialization, so that at least those classes
will be isolated from any ordering issues encountered when
testing the contents of the class list during compilation.
Signed-off-by: Luke Kanies <luke@madstop.com>
-rw-r--r-- | lib/puppet/parser/compiler.rb | 3 | ||||
-rwxr-xr-x | spec/unit/parser/compiler.rb | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/puppet/parser/compiler.rb b/lib/puppet/parser/compiler.rb index 521bf1cb5..77b0bb98e 100644 --- a/lib/puppet/parser/compiler.rb +++ b/lib/puppet/parser/compiler.rb @@ -415,6 +415,9 @@ class Puppet::Parser::Compiler # local resource array to maintain resource ordering @resources = [] + + # Make sure any external node classes are in our class list + @catalog.add_class(*@node.classes) end # Set the node's parameters into the top-scope as variables. diff --git a/spec/unit/parser/compiler.rb b/spec/unit/parser/compiler.rb index 41f03f2ac..adc9732dc 100755 --- a/spec/unit/parser/compiler.rb +++ b/spec/unit/parser/compiler.rb @@ -86,6 +86,16 @@ describe Puppet::Parser::Compiler do it "should copy the parser version to the catalog" do @compiler.catalog.version.should == @parser.version end + + it "should copy any node classes into the class list" do + node = Puppet::Node.new("mynode") + node.classes = %w{foo bar} + compiler = Puppet::Parser::Compiler.new(node, @parser) + p compiler.classlist + + compiler.classlist.should include("foo") + compiler.classlist.should include("bar") + end end describe "when managing scopes" do |