diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2015-04-24 10:48:43 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2015-04-24 10:48:43 -0700 |
commit | 57cdbe124f63e47cab960e714572539d3979b90f (patch) | |
tree | 0b4687f9090de23502bea8c01aeb643290ec7ada /lib | |
parent | 9e00864cce2ba88ca5a952c3cc98ee15d22f84f8 (diff) | |
download | chef-57cdbe124f63e47cab960e714572539d3979b90f.tar.gz |
Fix API break in 12.3.0.rc.0
provides? on a provider was passed the full resource. provides? on
a resource class cannot be passed the resource and must be passed the
declared_type instead. i tried to make them the same, but that would
change the API on the provider.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/mixin/provides.rb | 1 | ||||
-rw-r--r-- | lib/chef/provider_resolver.rb | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/chef/mixin/provides.rb b/lib/chef/mixin/provides.rb index e5bb2c2005..bc25af62b2 100644 --- a/lib/chef/mixin/provides.rb +++ b/lib/chef/mixin/provides.rb @@ -25,6 +25,7 @@ class Chef # provides a node on the resource (early binding) def provides?(node, resource_name) + resource_name = resource_name.resource_name if resource_name.is_a?(Chef::Resource) node_map.get(node, resource_name) end end diff --git a/lib/chef/provider_resolver.rb b/lib/chef/provider_resolver.rb index 867c3deca8..45122d7156 100644 --- a/lib/chef/provider_resolver.rb +++ b/lib/chef/provider_resolver.rb @@ -47,7 +47,9 @@ class Chef def enabled_handlers @enabled_handlers ||= providers.select do |klass| - klass.provides?(node, resource.resource_name) + # NB: this is different from resoruce_resolver which must pass a resource_name + # FIXME: deprecate this and normalize on passing resource_name here + klass.provides?(node, resource) end.sort {|a,b| a.to_s <=> b.to_s } end |