summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser
diff options
context:
space:
mode:
authorLuke Kanies <luke@puppetlabs.com>2011-06-08 22:36:25 -0700
committerLuke Kanies <luke@puppetlabs.com>2011-07-15 11:52:07 -0700
commit9d608ea176224f38c6af349883065d9363dd1bb1 (patch)
tree9cbe48da2e43073583becc30babb9c4d214cad32 /lib/puppet/parser
parent06e86e40bbb173fa24a7d1c2ecf4e54e1748de67 (diff)
downloadpuppet-9d608ea176224f38c6af349883065d9363dd1bb1.tar.gz
puppet-9d608ea176224f38c6af349883065d9363dd1bb1.tar.xz
puppet-9d608ea176224f38c6af349883065d9363dd1bb1.zip
Resource type defaults cleanup
This is again done to make support for hiera easier. The way we were handling lookup of resource defaults was over-complicated. This does a decent bit of cleanup overall, but primarily focused on resource type defaults and how they get set during compilation. Signed-off-by: Luke Kanies <luke@puppetlabs.com> Reviewed-by: Nick Lewis <nick@puppetlabs.com>
Diffstat (limited to 'lib/puppet/parser')
-rw-r--r--lib/puppet/parser/compiler.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/puppet/parser/compiler.rb b/lib/puppet/parser/compiler.rb
index f43a31285..06cd80a1e 100644
--- a/lib/puppet/parser/compiler.rb
+++ b/lib/puppet/parser/compiler.rb
@@ -139,19 +139,21 @@ class Puppet::Parser::Compiler
# evaluated later in the process.
def evaluate_classes(classes, scope, lazy_evaluate = true)
raise Puppet::DevError, "No source for scope passed to evaluate_classes" unless scope.source
- param_classes = nil
+ class_parameters = nil
# if we are a param class, save the classes hash
# and transform classes to be the keys
if classes.class == Hash
- param_classes = classes
+ class_parameters = classes
classes = classes.keys
end
classes.each do |name|
# If we can find the class, then make a resource that will evaluate it.
if klass = scope.find_hostclass(name)
- if param_classes
- resource = klass.ensure_in_catalog(scope, param_classes[name] || {})
+ # If parameters are passed, then attempt to create a duplicate resource
+ # so the appropriate error is thrown.
+ if class_parameters
+ resource = klass.ensure_in_catalog(scope, class_parameters[name] || {})
else
next if scope.class_scope(klass)
resource = klass.ensure_in_catalog(scope)