diff options
author | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-06-24 17:37:59 -0700 |
---|---|---|
committer | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-06-24 19:04:51 -0700 |
commit | dbb2e0c36d2585dc10eafd3c73f0af09ff0ff52a (patch) | |
tree | ec1bf09018721db603f9ec6226bb0b4fb6c5c72b /lib/chef | |
parent | ab34e3cd83d545b5da19113d723eeebcab1e77e2 (diff) | |
download | chef-jdm/lwrp-fix.tar.gz |
Fix to allow LW resources to be used with HW providersjdm/lwrp-fix
This should fix sethvargo-cookbooks/swap#22
Here's what was happening:
The cookbooks creates a Resource using the LWRP base. This dynamically
creates a class. We used to create this class with the name
Chef::Resource::SomeResourceName. In 12.4, this change to something like
"LWRP resource some_resource_name from cookbook CookbookName". When
searching for a provider, it couldn't be found because it wasn't explicitly
set, as it would have been if it was a LW provider, and it wasn't found
in Chef::Provider, because Chef::Provider had a provider SomeResourceName
instead of "LWRP resource some_resource_name from cookbook CookbookName".
Diffstat (limited to 'lib/chef')
-rw-r--r-- | lib/chef/platform/provider_mapping.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/chef/platform/provider_mapping.rb b/lib/chef/platform/provider_mapping.rb index af17d8e1b4..4278b8d24f 100644 --- a/lib/chef/platform/provider_mapping.rb +++ b/lib/chef/platform/provider_mapping.rb @@ -197,7 +197,8 @@ class Chef def resource_matching_provider(platform, version, resource_type) if resource_type.kind_of?(Chef::Resource) - class_name = resource_type.class.to_s.split('::').last + 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) |