summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/parser/compiler.rb3
-rwxr-xr-xspec/unit/parser/compiler.rb10
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