From 82f328a811bf4c8a71277d56bfffa631d5f565f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Mon, 13 Jul 2015 15:35:54 -0400 Subject: Fix error message for providers without `provides` The warning incorrectly said that the provider was missing `resource_name :resource` when it should have said it was missing `provides :resource` I also switched from using `begin`...`rescue` since it isn't needed and needlessly slow things up. Fixes #3614 --- lib/chef/platform/provider_mapping.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'lib/chef') diff --git a/lib/chef/platform/provider_mapping.rb b/lib/chef/platform/provider_mapping.rb index 38dd0e38af..9b511f0237 100644 --- a/lib/chef/platform/provider_mapping.rb +++ b/lib/chef/platform/provider_mapping.rb @@ -200,14 +200,13 @@ class Chef class_name = resource_type.class.name ? resource_type.class.name.split('::').last : convert_to_class_name(resource_type.resource_name.to_s) - begin - result = Chef::Provider.const_get(class_name) - Chef::Log.warn("Class Chef::Provider::#{class_name} does not declare 'resource_name #{convert_to_snake_case(class_name).to_sym.inspect}'.") - Chef::Log.warn("This will no longer work in Chef 13: you must use 'resource_name' to provide DSL.") - rescue NameError + if Chef::Provider.const_defined?(class_name) + Chef::Log.warn("Class Chef::Provider::#{class_name} does not declare 'provides #{convert_to_snake_case(class_name).to_sym.inspect}'.") + Chef::Log.warn("This will no longer work in Chef 13: you must use 'provides' to use the resource's DSL.") + return Chef::Provider.const_get(class_name) end end - result + nil end end -- cgit v1.2.1