diff options
author | John Keiser <john@johnkeiser.com> | 2016-01-15 13:18:20 -0800 |
---|---|---|
committer | John Keiser <john@johnkeiser.com> | 2016-01-15 13:31:44 -0800 |
commit | d1a451d5dc4d564e14706a759cd0416d3678e4a7 (patch) | |
tree | 0de45647345c47f4ccc97865a34c342895459c34 /lib/chef_zero | |
parent | 33ad78efb84af54cb5d7dae0bee8b491dbc394a7 (diff) | |
download | chef-zero-d1a451d5dc4d564e14706a759cd0416d3678e4a7.tar.gz |
Support Chef versions that don't support cookbook_artifactsjk/cookbook-artifacts-hoover
Diffstat (limited to 'lib/chef_zero')
-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) |