diff options
Diffstat (limited to 'lib/puppet')
| -rw-r--r-- | lib/puppet/parser/scope.rb | 6 | ||||
| -rw-r--r-- | lib/puppet/resource/type.rb | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/puppet/parser/scope.rb b/lib/puppet/parser/scope.rb index 140c8c1b5..c974aee78 100644 --- a/lib/puppet/parser/scope.rb +++ b/lib/puppet/parser/scope.rb @@ -306,6 +306,12 @@ class Puppet::Parser::Scope self.nodescope end + def parent_module_name + return nil unless @parent + return nil unless @parent.source + @parent.source.module_name + end + # Return the list of scopes up to the top scope, ordered with our own first. # This is used for looking up variables and defaults. def scope_path diff --git a/lib/puppet/resource/type.rb b/lib/puppet/resource/type.rb index 227c544e6..e13b1834e 100644 --- a/lib/puppet/resource/type.rb +++ b/lib/puppet/resource/type.rb @@ -214,6 +214,10 @@ class Puppet::Resource::Type scope.setvar("title", resource.title) unless set.include? :title scope.setvar("name", resource.name) unless set.include? :name scope.setvar("module_name", module_name) if module_name and ! set.include? :module_name + + if caller_name = scope.parent_module_name and ! set.include?(:caller_module_name) + scope.setvar("caller_module_name", caller_name) + end scope.class_set(self.name,scope) if hostclass? end |
