diff options
author | John Keiser <john@johnkeiser.com> | 2015-06-05 14:47:18 -0700 |
---|---|---|
committer | John Keiser <john@johnkeiser.com> | 2015-06-08 09:01:55 -0700 |
commit | 3dcaddb86dc85a4cf730e675232ce83f97d5726b (patch) | |
tree | 950b87bae166f85b45edf7552dee6891153e8125 /lib/chef/resource.rb | |
parent | c65de79dbd662d895c8a10ef496d7eb9c69376c2 (diff) | |
download | chef-3dcaddb86dc85a4cf730e675232ce83f97d5726b.tar.gz |
Make sure resource_name :x only removes automatic provides from that class
Diffstat (limited to 'lib/chef/resource.rb')
-rw-r--r-- | lib/chef/resource.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb index 3a9af0bcca..ed66bab916 100644 --- a/lib/chef/resource.rb +++ b/lib/chef/resource.rb @@ -911,10 +911,11 @@ class Chef def self.resource_name(name=NULL_ARG) # Setter if name != NULL_ARG + remove_canonical_dsl + # Set the resource_name and call provides if name name = name.to_sym - remove_canonical_dsl # If our class is not already providing this name, provide it. if !Chef::ResourceResolver.list(name).include?(self) provides name, canonical: true @@ -1327,10 +1328,18 @@ class Chef # resource_subclass = class_eval <<-EOM, __FILE__, __LINE__+1 class Chef::Resource::#{class_name} < resource_class + resource_name nil # we do not actually provide anything def initialize(*args, &block) Chef::Log.deprecation("Using an LWRP by its name (#{class_name}) directly is no longer supported in Chef 13 and will be removed. Use Chef::Resource.resource_for_node(node, name) instead.") super end + def self.resource_name(*args) + if args.empty? + @resource_name ||= superclass.resource_name + else + super + end + end self end EOM @@ -1379,7 +1388,7 @@ class Chef def self.remove_canonical_dsl if @resource_name - remaining = Chef.resource_priority_map.delete_canonical(@resource_name) + remaining = Chef.resource_priority_map.delete_canonical(@resource_name, self) if !remaining Chef::DSL::Resources.remove_resource_dsl(@resource_name) end |