summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef_zero/endpoints/cookbook_version_endpoint.rb')
-rw-r--r--lib/chef_zero/endpoints/cookbook_version_endpoint.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
index 55acd1a..e2dc726 100644
--- a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
@@ -95,9 +95,13 @@ module ChefZero
cookbooks = []
end
cookbooks.each do |cookbook_name|
- data_store.list(request.rest_path[0..1] + [cookbook_type, cookbook_name]).each do |version|
- cookbook = data_store.get(request.rest_path[0..1] + [cookbook_type, cookbook_name, version], request)
- deleted_checksums = deleted_checksums - get_checksums(cookbook)
+ # as below, this can be racy.
+ begin
+ data_store.list(request.rest_path[0..1] + [cookbook_type, cookbook_name]).each do |version|
+ cookbook = data_store.get(request.rest_path[0..1] + [cookbook_type, cookbook_name, version], request)
+ deleted_checksums = deleted_checksums - get_checksums(cookbook)
+ end
+ rescue ChefZero::DataStore::DataNotFoundError
end
end
end