diff options
Diffstat (limited to 'lib/chef_zero/endpoints/cookbook_version_endpoint.rb')
-rw-r--r-- | lib/chef_zero/endpoints/cookbook_version_endpoint.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb index 463cb70..5502ba0 100644 --- a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +++ b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb @@ -87,7 +87,14 @@ module ChefZero def hoover_unused_checksums(deleted_checksums, request) %w(cookbooks cookbook_artifacts).each do |cookbook_type| - data_store.list(request.rest_path[0..1] + [cookbook_type]).each do |cookbook_name| + begin + cookbooks = data_store.list(request.rest_path[0..1] + [cookbook_type]) + rescue ChefZero::DataStore::DataNotFoundError + # Not all chef versions support cookbook_artifacts + raise unless cookbook_type == "cookbook_artifacts" + 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) |