diff options
| author | Markus Roberts <Markus@reality.com> | 2010-07-25 22:14:31 -0700 |
|---|---|---|
| committer | Markus Roberts <Markus@reality.com> | 2010-07-25 22:24:49 -0700 |
| commit | 760e418d254a8d2198d2c6eb466d783a5930ef47 (patch) | |
| tree | 16fd3ef776adc3d23e56528fea33aea1713542ee | |
| parent | 67bdf89ac91a753171ad354b070546c62e09ce1a (diff) | |
| download | puppet-760e418d254a8d2198d2c6eb466d783a5930ef47.tar.gz puppet-760e418d254a8d2198d2c6eb466d783a5930ef47.tar.xz puppet-760e418d254a8d2198d2c6eb466d783a5930ef47.zip | |
Fix #4349 - Parsing with ignoreimport=true was always loading site.pp
With the type collection refactoring, when accessing a fresh collection
puppet tries to import the site.pp manifest (perfrom_initial_import).
In the case of puppetdoc, we are parsing site.pp by ourselves, so we
ended parsing it twice, resulting in an "import loop detected" error.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
| -rw-r--r-- | lib/puppet/resource/type_collection.rb | 1 | ||||
| -rw-r--r-- | spec/unit/resource/type_collection_spec.rb | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/puppet/resource/type_collection.rb b/lib/puppet/resource/type_collection.rb index 6a933362f..90b6df9c1 100644 --- a/lib/puppet/resource/type_collection.rb +++ b/lib/puppet/resource/type_collection.rb @@ -153,6 +153,7 @@ class Puppet::Resource::TypeCollection end def perform_initial_import + return if Puppet.settings[:ignoreimport] parser = Puppet::Parser::Parser.new(environment) if code = Puppet.settings.uninterpolated_value(:code, environment.to_s) and code != "" parser.string = code diff --git a/spec/unit/resource/type_collection_spec.rb b/spec/unit/resource/type_collection_spec.rb index 09643cd24..45fc05da0 100644 --- a/spec/unit/resource/type_collection_spec.rb +++ b/spec/unit/resource/type_collection_spec.rb @@ -400,6 +400,14 @@ describe Puppet::Resource::TypeCollection do @parser.expects(:parse).raises ArgumentError lambda { @code.perform_initial_import }.should raise_error(Puppet::Error) end + + it "should not do anything if the ignore_import settings is set" do + Puppet.settings[:ignoreimport] = true + @parser.expects(:string=).never + @parser.expects(:file=).never + @parser.expects(:parse).never + @code.perform_initial_import + end end describe "when determining the configuration version" do |
