summaryrefslogtreecommitdiffstats
path: root/lib/puppet/node
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/node')
-rw-r--r--lib/puppet/node/environment.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/puppet/node/environment.rb b/lib/puppet/node/environment.rb
index ad11a0476..3d55ac1a0 100644
--- a/lib/puppet/node/environment.rb
+++ b/lib/puppet/node/environment.rb
@@ -81,7 +81,7 @@ class Puppet::Node::Environment
Thread.current[:known_resource_types] ||= synchronize {
if @known_resource_types.nil? or @known_resource_types.stale?
@known_resource_types = Puppet::Resource::TypeCollection.new(self)
- perform_initial_import
+ @known_resource_types.import_ast(perform_initial_import, '')
end
@known_resource_types
}
@@ -146,13 +146,13 @@ class Puppet::Node::Environment
private
def perform_initial_import
- return if Puppet.settings[:ignoreimport]
+ return empty_parse_result if Puppet.settings[:ignoreimport]
parser = Puppet::Parser::Parser.new(self)
if code = Puppet.settings.uninterpolated_value(:code, name.to_s) and code != ""
parser.string = code
else
file = Puppet.settings.value(:manifest, name.to_s)
- return unless File.exist?(file)
+ return empty_parse_result unless File.exist?(file)
parser.file = file
end
parser.parse
@@ -163,5 +163,11 @@ class Puppet::Node::Environment
raise error
end
+ def empty_parse_result
+ # Return an empty toplevel hostclass to use as the result of
+ # perform_initial_import when no file was actually loaded.
+ return Puppet::Parser::AST::Hostclass.new('')
+ end
+
@root = new(:'*root*')
end