diff options
Diffstat (limited to 'lib/puppet/parser/ast/resourceref.rb')
-rw-r--r-- | lib/puppet/parser/ast/resourceref.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/puppet/parser/ast/resourceref.rb b/lib/puppet/parser/ast/resourceref.rb index e6d486902..e5bb69a46 100644 --- a/lib/puppet/parser/ast/resourceref.rb +++ b/lib/puppet/parser/ast/resourceref.rb @@ -19,17 +19,23 @@ class Puppet::Parser::AST # We want a lower-case type. objtype = @type.downcase + title = @title.safeevaluate(:scope => scope) if scope.builtintype?(objtype) # nothing elsif dtype = scope.finddefine(objtype) objtype = dtype.classname + elsif objtype == "class" + # Look up the full path to the class + if classobj = scope.findclass(title) + title = classobj.classname + else + raise Puppet::ParseError, "Could not find class %s" % title + end else - raise Puppet::ParseError, "Could not find type %s" % objtype + raise Puppet::ParseError, "Could not find resource type %s" % objtype end - title = @title.safeevaluate(:scope => scope) - return Puppet::Parser::Resource::Reference.new( :type => objtype, :title => title ) |