summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2013-10-28 14:40:14 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2013-10-28 14:40:14 -0700
commit056b975dd45f94cc690e3c0e8bc6780623c481ce (patch)
tree69ce491c227e5845c99c35f1e51fb3c1644a704a
parent6bcb8976383fc8949a6c664a97167928cb406711 (diff)
downloadchef-zero-056b975dd45f94cc690e3c0e8bc6780623c481ce.tar.gz
slight better error message on constraint failure
-rw-r--r--lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
index dbc2f98..2e56a51 100644
--- a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
@@ -37,8 +37,11 @@ module ChefZero
solved = depsolve(request, desired_versions.keys, desired_versions, environment_constraints)
if !solved
if @last_missing_dep && !cookbook_names.include?(@last_missing_dep)
- return raise RestErrorResponse.new(412, "No such cookbook: #{@last_missing_dep}")
+ return raise RestErrorResponse.new(412, "No such cookbook: #{@last_missing_dep}")
+ elsif @last_constraint_failure
+ return raise RestErrorResponse.new(412, "Could not satisfy version constraints for: #{@last_constraint_failure}")
else
+
return raise RestErrorResponse.new(412, "Unsolvable versions!")
end
end
@@ -52,7 +55,12 @@ module ChefZero
end
def depsolve(request, unsolved, desired_versions, environment_constraints)
- return nil if desired_versions.values.any? { |versions| versions.empty? }
+ desired_versions.each do |cb, ver|
+ if ver.empty?
+ @last_constraint_failure = cb
+ return nil
+ end
+ end
# If everything is already
solve_for = unsolved[0]