diff options
author | Andrew Shafer <andrew@reductivelabs.com> | 2008-06-13 18:11:20 -0600 |
---|---|---|
committer | Andrew Shafer <andrew@reductivelabs.com> | 2008-06-13 18:11:20 -0600 |
commit | 4539b1cccbc5bf6287e322d7296c4b7cfc47e4ce (patch) | |
tree | 0a97a1cf5b88bacb21902f31d4eb44b3296e4adb | |
parent | 28e4dd3ff65fba7ed4d8b211bd5920618c2025ea (diff) | |
download | puppet-4539b1cccbc5bf6287e322d7296c4b7cfc47e4ce.tar.gz puppet-4539b1cccbc5bf6287e322d7296c4b7cfc47e4ce.tar.xz puppet-4539b1cccbc5bf6287e322d7296c4b7cfc47e4ce.zip |
Issue 1215
Removed logic to reuse parser and log on server when there is a parsing error.
Now we just make a new parser and if there is an error, raise it up, which will result in errors on the client logs.
-rw-r--r-- | lib/puppet/parser/interpreter.rb | 19 | ||||
-rwxr-xr-x | spec/unit/parser/interpreter.rb | 27 |
2 files changed, 5 insertions, 41 deletions
diff --git a/lib/puppet/parser/interpreter.rb b/lib/puppet/parser/interpreter.rb index 04ca41494..423c34a4e 100644 --- a/lib/puppet/parser/interpreter.rb +++ b/lib/puppet/parser/interpreter.rb @@ -50,23 +50,8 @@ class Puppet::Parser::Interpreter # Return the parser for a specific environment. def parser(environment) if ! @parsers[environment] or @parsers[environment].reparse? - # This will throw an exception if it does not succeed. We only - # want to get rid of the old parser if we successfully create a new - # one. - begin - tmp = create_parser(environment) - @parsers[environment].clear if @parsers[environment] - @parsers[environment] = tmp - rescue => detail - # If a parser already exists, than assume that we logged the - # exception elsewhere and reuse the parser. If one doesn't - # exist, then reraise. - if @parsers[environment] - Puppet.err(detail.to_s + "; using previously parsed manifests") - else - raise detail - end - end + # This will throw an exception if it does not succeed. + @parsers[environment] = create_parser(environment) end @parsers[environment] end diff --git a/spec/unit/parser/interpreter.rb b/spec/unit/parser/interpreter.rb index f2526c73d..27cf7056d 100755 --- a/spec/unit/parser/interpreter.rb +++ b/spec/unit/parser/interpreter.rb @@ -84,7 +84,6 @@ describe Puppet::Parser::Interpreter do oldparser = mock('oldparser') newparser = mock('newparser') oldparser.expects(:reparse?).returns(true) - oldparser.expects(:clear) @interp.expects(:create_parser).with(:myenv).returns(oldparser) @interp.send(:parser, :myenv).should equal(oldparser) @@ -92,36 +91,16 @@ describe Puppet::Parser::Interpreter do @interp.send(:parser, :myenv).should equal(newparser) end - it "should keep the old parser if a new parser cannot be created" do + it "should raise an exception if a new parser cannot be created" do # Get the first parser in the hash. @interp.expects(:create_parser).with(:myenv).returns(@parser) @interp.send(:parser, :myenv).should equal(@parser) - # Have it indicate something has changed @parser.expects(:reparse?).returns(true) - # But fail to create a new parser - @interp.expects(:create_parser).with(:myenv).raises(ArgumentError) + @interp.expects(:create_parser).with(:myenv).raises(Puppet::Error, "Could not parse") - # And make sure we still get the old valid parser - @interp.send(:parser, :myenv).should equal(@parser) - end - - it "should log syntax errors when using the old parser" do - # Get the first parser in the hash. - @interp.stubs(:create_parser).with(:myenv).returns(@parser) - @interp.send(:parser, :myenv) - - # Have it indicate something has changed - @parser.stubs(:reparse?).returns(true) - - # But fail to create a new parser - @interp.stubs(:create_parser).with(:myenv).raises(ArgumentError) - - Puppet.expects(:err) - - # And make sure we still get the old valid parser - @interp.send(:parser, :myenv) + lambda { @interp.parser(:myenv) }.should raise_error(Puppet::Error) end end end |