diff options
Diffstat (limited to 'lib/chef_zero/endpoints/cookbooks_base.rb')
-rw-r--r-- | lib/chef_zero/endpoints/cookbooks_base.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/chef_zero/endpoints/cookbooks_base.rb b/lib/chef_zero/endpoints/cookbooks_base.rb index f97c38c..55b79ca 100644 --- a/lib/chef_zero/endpoints/cookbooks_base.rb +++ b/lib/chef_zero/endpoints/cookbooks_base.rb @@ -23,6 +23,22 @@ module ChefZero results end + def format_universe_list(request, cookbooks_list) + results = {} + cookbooks_list.each do |name, versions| + results[name] ||= {} + versions.each do |version| + cookbook_data = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + [ "cookbooks", name, version ], :nil)) + results[name][version] ||= { + "dependencies" => cookbook_data["metadata"]["dependencies"], + "location_path" => build_uri(request.base_uri, request.rest_path[0..1] + ["cookbooks", name, version]), + "location_type" => "chef_server", + } + end + end + results + end + def all_cookbooks_list(request) result = {} # Race conditions exist here (if someone deletes while listing). I don't care. |