diff options
| author | Max Martin <max@puppetlabs.com> | 2011-06-02 15:56:22 -0700 |
|---|---|---|
| committer | Max Martin <max@puppetlabs.com> | 2011-06-02 15:56:22 -0700 |
| commit | 4801e10c81264b20c2d35b0d44c10cfb0668d1b9 (patch) | |
| tree | 3e3024bbd4a46a3ab2af5bf29ec2f3b30db270d7 /lib/puppet/parser | |
| parent | 520cbc0292ec0cf75b6871bb0a4bc12bce506bb0 (diff) | |
| parent | 4ad88017d3b8b8000325f5165520a6c21b48c469 (diff) | |
| download | puppet-4801e10c81264b20c2d35b0d44c10cfb0668d1b9.tar.gz puppet-4801e10c81264b20c2d35b0d44c10cfb0668d1b9.tar.xz puppet-4801e10c81264b20c2d35b0d44c10cfb0668d1b9.zip | |
Merge branch '2.7.x'
* 2.7.x: (40 commits)
(#7746) Fix bootstrap issues from #7717 fix.
(#7683) Use ronn, when available, to render the output.
(#7683) Add a 'man' face and subcommand to Puppet.
maint: remove obsolete work-around code from help face.
(#7699) Don't duplicate inherited action names on faces.
(#7177) Deprecate implicit 'puppet apply' for 2.7.0
(#7717) Layout cleanup for subcommand extraction.
#7211: Test unknown options don't shadow unknown actions.
#7211: nasty logic error with global Face options taking arguments.
#7211: more helpful error messages in various cases.
maint: Fix order dependent test failure
(#5966) Add support for hostname regular expressions in auth.conf
(#7708) Delete extended documentation from configuration reference
(#7707) Document signals in puppet agent and puppet master help
add puppet master polling step for ticket 7117
(#5318) Always notice changes to manifests when compiling.
(#5318) Always notice changes to manifests when compiling.
(#7557) Remove Faces Application
maint: Fix order dependent spec failure for face indirection
(#7690) Don't blow up when listing terminuses available for faces
...
Conflicts (resolved manually):
acceptance/tests/ticket_7117_broke_env_criteria_authconf.rb
Diffstat (limited to 'lib/puppet/parser')
| -rw-r--r-- | lib/puppet/parser/ast/resource_reference.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/parser/compiler.rb | 14 |
2 files changed, 10 insertions, 6 deletions
diff --git a/lib/puppet/parser/ast/resource_reference.rb b/lib/puppet/parser/ast/resource_reference.rb index 0f8e655bf..256a99d75 100644 --- a/lib/puppet/parser/ast/resource_reference.rb +++ b/lib/puppet/parser/ast/resource_reference.rb @@ -7,7 +7,7 @@ class Puppet::Parser::AST::ResourceReference < Puppet::Parser::AST::Branch # Evaluate our object, but just return a simple array of the type # and name. def evaluate(scope) - titles = Array(title.safeevaluate(scope)) + titles = Array(title.safeevaluate(scope)).flatten a_type, titles = scope.resolve_type_and_titles(type, titles) diff --git a/lib/puppet/parser/compiler.rb b/lib/puppet/parser/compiler.rb index 613fcae74..c1daade4c 100644 --- a/lib/puppet/parser/compiler.rb +++ b/lib/puppet/parser/compiler.rb @@ -15,15 +15,19 @@ class Puppet::Parser::Compiler include Puppet::Resource::TypeCollectionHelper def self.compile(node) + # We get these from the environment and only cache them in a thread + # variable for the duration of the compilation. If nothing else is using + # the thread, though, we can leave 'em hanging round with no ill effects, + # and this is safer than cleaning them at the end and assuming that will + # stick until the next entry to this function. + Thread.current[:known_resource_types] = nil + Thread.current[:env_module_directories] = nil + + # ...and we actually do the compile now we have caching ready. new(node).compile.to_resource rescue => detail puts detail.backtrace if Puppet[:trace] raise Puppet::Error, "#{detail} on node #{node.name}" - ensure - # We get these from the environment and only cache them in a thread - # variable for the duration of the compilation. - Thread.current[:known_resource_types] = nil - Thread.current[:env_module_directories] = nil end attr_reader :node, :facts, :collections, :catalog, :node_scope, :resources, :relationships |
