def sync_cookbooks
Chef::Log.debug("Synchronizing cookbooks")
begin
@events.cookbook_resolution_start(@expanded_run_list_with_versions)
cookbook_hash = rest.post_rest("environments/#{@node.chef_environment}/cookbook_versions",
{:run_list => @expanded_run_list_with_versions})
rescue Exception => e
@events.cookbook_resolution_failed(@expanded_run_list_with_versions, e)
raise
else
@events.cookbook_resolution_complete(cookbook_hash)
end
synchronizer = Chef::CookbookSynchronizer.new(cookbook_hash, @events)
synchronizer.sync_cookbooks
Chef::Config[:cookbook_path] = File.join(Chef::Config[:file_cache_path], "cookbooks")
cookbook_hash
end