diff options
-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 |