diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2016-12-19 09:55:10 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-19 09:55:10 -0800 |
commit | 2c33a17fef8308f255f339f73a480f296fba32c2 (patch) | |
tree | fcdee8e5daa4deaf51fd645a0fb736391503b323 | |
parent | a70905ea932e1a5678c910c8495a344b3b0930e0 (diff) | |
parent | c20f0740ce2fce5f3968e9f18a2ac8ac6c9b779f (diff) | |
download | chef-2c33a17fef8308f255f339f73a480f296fba32c2.tar.gz |
Merge pull request #5648 from chef/ssd/chef-fs-n-squared
[cheffs] Don't iterate parent object on exist? call
-rw-r--r-- | lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb b/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb index b8ec5f8524..eb793d5e87 100644 --- a/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +++ b/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb @@ -69,7 +69,14 @@ class Chef def exists? if @exists.nil? begin - @exists = parent.children.any? { |child| child.api_child_name == api_child_name } + rest.get(api_path) + @exists = true + rescue Net::HTTPServerException => e + if e.response.code == "404" + @exists = false + else + raise + end rescue Chef::ChefFS::FileSystem::NotFoundError @exists = false end |