summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Keiser <john@johnkeiser.com>2016-01-15 13:18:20 -0800
committerJohn Keiser <john@johnkeiser.com>2016-01-15 13:31:44 -0800
commitd1a451d5dc4d564e14706a759cd0416d3678e4a7 (patch)
tree0de45647345c47f4ccc97865a34c342895459c34
parent33ad78efb84af54cb5d7dae0bee8b491dbc394a7 (diff)
downloadchef-zero-jk/cookbook-artifacts-hoover.tar.gz
Support Chef versions that don't support cookbook_artifactsjk/cookbook-artifacts-hoover
-rw-r--r--lib/chef_zero/endpoints/cookbook_version_endpoint.rb9
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)