diff options
author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-07-19 19:23:56 +0000 |
---|---|---|
committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2007-07-19 19:23:56 +0000 |
commit | 501e8c85863de33ec98744510770dbe16ba85135 (patch) | |
tree | 1fd939adda9b9ca21d8ceaecad07a9734b8dc263 /lib/puppet/parser/ast/resourceref.rb | |
parent | b9dd7ee7e2bf296a8551942c12d6b69624b4457f (diff) | |
download | puppet-501e8c85863de33ec98744510770dbe16ba85135.tar.gz puppet-501e8c85863de33ec98744510770dbe16ba85135.tar.xz puppet-501e8c85863de33ec98744510770dbe16ba85135.zip |
Adding the ability to specify relationships to classes, using Class[name] resource references.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2715 980ebf18-57e1-0310-9a29-db15c13687c0
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 ) |