Method: Chef::ChefFS::FileSystem::ChefServer::CookbooksDir#upload_cookbook

Defined in:
lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb

#upload_cookbook(other, options) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb', line 74

def upload_cookbook(other, options)
  cookbook = other.chef_object if other.chef_object
  raise Chef::Exceptions::MetadataNotFound.new(cookbook.root_paths[0], cookbook.name) unless cookbook.

  if cookbook
    Chef::CookbookLoader.copy_to_tmp_dir_from_array([cookbook]) do |tmp_cl|
      tmp_cl.load_cookbooks
      tmp_cl.
      tmp_cl.freeze_versions if options[:freeze]
      cookbook_for_upload = []
      tmp_cl.each do |cookbook_name, cookbook|
        cookbook_for_upload << cookbook
      end

      uploader = Chef::CookbookUploader.new(cookbook_for_upload, force: options[:force], rest: chef_rest)

      with_actual_cookbooks_dir(other.parent.file_path) do
        uploader.upload_cookbooks
      end
    end
  end
end