summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@chef.io>2019-05-23 13:33:59 -0700
committerGitHub <noreply@github.com>2019-05-23 13:33:59 -0700
commit9f8074a61f89c4f132af699d010e59792a598175 (patch)
treedd03a71c7092a21344717189d1eb20663b00e1c5
parentf5de2c58ea3705a20a6784251a3cd8a58618f24d (diff)
parent1ac56538b6865b76ec11490d946546548960c15f (diff)
downloadchef-9f8074a61f89c4f132af699d010e59792a598175.tar.gz
Merge pull request #8570 from artem-forks/delete_resource
Fix delete_resource for resources
-rw-r--r--lib/chef/resource_collection.rb5
-rw-r--r--spec/unit/resource_collection_spec.rb8
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/chef/resource_collection.rb b/lib/chef/resource_collection.rb
index c2bb463bfb..0293f380b0 100644
--- a/lib/chef/resource_collection.rb
+++ b/lib/chef/resource_collection.rb
@@ -60,8 +60,9 @@ class Chef
end
def delete(key)
- resource_list.delete(key)
- resource_set.delete(key)
+ res = resource_set.delete(key)
+ resource_list.delete(res.to_s)
+ res
end
# @deprecated
diff --git a/spec/unit/resource_collection_spec.rb b/spec/unit/resource_collection_spec.rb
index c12a005cfc..7f59246a88 100644
--- a/spec/unit/resource_collection_spec.rb
+++ b/spec/unit/resource_collection_spec.rb
@@ -183,6 +183,14 @@ describe Chef::ResourceCollection do
expect(rc).to be_empty
end
+ it "should allow to delete resources with different providers" do
+ pkg = Chef::Resource::YumPackage.new("monkey")
+ rc.insert(pkg, instance_name: "monkey", resource_type: "package")
+ expect(rc).not_to be_empty
+ expect(rc.delete("package[monkey]")).to eql(pkg)
+ expect(rc).to be_empty
+ end
+
it "should raise an exception if you send something strange to delete" do
expect { rc.delete(:symbol) }.to raise_error(ArgumentError)
end