summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb')
-rw-r--r--lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb32
1 files changed, 16 insertions, 16 deletions
diff --git a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
index b11687b..8e693b5 100644
--- a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/rest_error_response'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/rest_error_response"
module ChefZero
module Endpoints
@@ -8,26 +8,26 @@ module ChefZero
class EnvironmentCookbookVersionsEndpoint < RestBase
def post(request)
- cookbook_names = list_data(request, request.rest_path[0..1] + ['cookbooks'])
+ cookbook_names = list_data(request, request.rest_path[0..1] + ["cookbooks"])
# Get the list of cookbooks and versions desired by the runlist
desired_versions = {}
- run_list = FFI_Yajl::Parser.parse(request.body, :create_additions => false)['run_list']
+ run_list = FFI_Yajl::Parser.parse(request.body, :create_additions => false)["run_list"]
run_list.each do |run_list_entry|
if run_list_entry =~ /(.+)::.+\@(.+)/ || run_list_entry =~ /(.+)\@(.+)/
raise RestErrorResponse.new(412, "No such cookbook: #{$1}") if !cookbook_names.include?($1)
- raise RestErrorResponse.new(412, "No such cookbook version for cookbook #{$1}: #{$2}") if !list_data(request, request.rest_path[0..1] + ['cookbooks', $1]).include?($2)
+ raise RestErrorResponse.new(412, "No such cookbook version for cookbook #{$1}: #{$2}") if !list_data(request, request.rest_path[0..1] + ["cookbooks", $1]).include?($2)
desired_versions[$1] = [ $2 ]
else
- desired_cookbook = run_list_entry.split('::')[0]
+ desired_cookbook = run_list_entry.split("::")[0]
raise RestErrorResponse.new(412, "No such cookbook: #{desired_cookbook}") if !cookbook_names.include?(desired_cookbook)
- desired_versions[desired_cookbook] = list_data(request, request.rest_path[0..1] + ['cookbooks', desired_cookbook])
+ desired_versions[desired_cookbook] = list_data(request, request.rest_path[0..1] + ["cookbooks", desired_cookbook])
end
end
# Filter by environment constraints
environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
- environment_constraints = environment['cookbook_versions'] || {}
+ environment_constraints = environment["cookbook_versions"] || {}
desired_versions.each_key do |name|
desired_versions = filter_by_constraint(desired_versions, name, environment_constraints[name])
@@ -48,8 +48,8 @@ module ChefZero
result = {}
solved.each_pair do |name, versions|
- cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', name, versions[0]]), :create_additions => false)
- result[name] = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, name, versions[0], request.base_uri, 'MIN')
+ cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", name, versions[0]]), :create_additions => false)
+ result[name] = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, name, versions[0], request.base_uri, "MIN")
end
json_response(200, result)
end
@@ -74,9 +74,9 @@ module ChefZero
new_unsolved = unsolved[1..-1]
# Pick this cookbook, and add dependencies
- cookbook_obj = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', solve_for, desired_version]), :create_additions => false)
- cookbook_metadata = cookbook_obj['metadata'] || {}
- cookbook_dependencies = cookbook_metadata['dependencies'] || {}
+ cookbook_obj = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", solve_for, desired_version]), :create_additions => false)
+ cookbook_metadata = cookbook_obj["metadata"] || {}
+ cookbook_dependencies = cookbook_metadata["dependencies"] || {}
dep_not_found = false
cookbook_dependencies.each_pair do |dep_name, dep_constraint|
# If the dep is not already in the list, add it to the list to solve
@@ -84,12 +84,12 @@ module ChefZero
if !new_desired_versions.has_key?(dep_name)
new_unsolved = new_unsolved + [dep_name]
# If the dep is missing, we will try other versions of the cookbook that might not have the bad dep.
- if !exists_data_dir?(request, request.rest_path[0..1] + ['cookbooks', dep_name])
+ if !exists_data_dir?(request, request.rest_path[0..1] + ["cookbooks", dep_name])
@last_missing_dep = dep_name.to_s
dep_not_found = true
break
end
- new_desired_versions[dep_name] = list_data(request, request.rest_path[0..1] + ['cookbooks', dep_name])
+ new_desired_versions[dep_name] = list_data(request, request.rest_path[0..1] + ["cookbooks", dep_name])
new_desired_versions = filter_by_constraint(new_desired_versions, dep_name, environment_constraints[dep_name])
end
new_desired_versions = filter_by_constraint(new_desired_versions, dep_name, dep_constraint)