diff options
author | John Keiser <jkeiser@opscode.com> | 2014-04-22 12:39:48 -0700 |
---|---|---|
committer | John Keiser <jkeiser@opscode.com> | 2014-04-22 12:39:48 -0700 |
commit | 3d6fa1ed64e4c6eff7053a33b4f8e5b728ce2959 (patch) | |
tree | 6a338b0004819634c3b797f5155dea204128bb18 /lib/chef | |
parent | 5a7b4a30fb75c58b7944b4a5612883e5470539de (diff) | |
download | chef-3d6fa1ed64e4c6eff7053a33b4f8e5b728ce2959.tar.gz |
Don't consider .uploaded-cookbook-version.json uploadable
since it won't be uploaded
Diffstat (limited to 'lib/chef')
-rw-r--r-- | lib/chef/chef_fs/chef_fs_data_store.rb | 6 | ||||
-rw-r--r-- | lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb | 8 | ||||
-rw-r--r-- | lib/chef/cookbook/cookbook_version_loader.rb | 8 |
3 files changed, 16 insertions, 6 deletions
diff --git a/lib/chef/chef_fs/chef_fs_data_store.rb b/lib/chef/chef_fs/chef_fs_data_store.rb index 7f5abaf013..566ca9f9a2 100644 --- a/lib/chef/chef_fs/chef_fs_data_store.rb +++ b/lib/chef/chef_fs/chef_fs_data_store.rb @@ -279,11 +279,13 @@ class Chef end end - cookbook_fs.add_file("#{cookbook_path}/.uploaded-cookbook-version.json", data) - # Use the copy/diff algorithm to copy it down so we don't destroy # chefignored data. This is terribly un-thread-safe. Chef::ChefFS::FileSystem.copy_to(Chef::ChefFS::FilePattern.new("/#{cookbook_path}"), cookbook_fs, chef_fs, nil, {:purge => true}) + + # Create the .uploaded-cookbook-version.json + cookbook_entry = Chef::ChefFS::FileSystem.resolve_path(chef_fs, cookbook_path) + cookbook_entry.write_uploaded_cookbook_version(data) end def split_name_version(entry_name) diff --git a/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb b/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb index e395cb794f..dc5f6c03ac 100644 --- a/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +++ b/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb @@ -66,6 +66,8 @@ class Chef if is_dir # Only the given directories will be uploaded. return CookbookDir::COOKBOOK_SEGMENT_INFO.keys.include?(name.to_sym) && name != 'root_files' + elsif name == Chef::Cookbook::CookbookVersionLoader::UPLOADED_COOKBOOK_VERSION_FILE + return false end super(name, is_dir) end @@ -81,6 +83,12 @@ class Chef self.class.canonical_cookbook_name(entry_name) end + def write_uploaded_cookbook_version(data) + File.open("#{file_path}/#{Chef::Cookbook::CookbookVersionLoader::UPLOADED_COOKBOOK_VERSION_FILE}", 'w') do |file| + file.write(data) + end + end + protected def make_child(child_name) diff --git a/lib/chef/cookbook/cookbook_version_loader.rb b/lib/chef/cookbook/cookbook_version_loader.rb index 8419a2b46e..9e9ca20cfa 100644 --- a/lib/chef/cookbook/cookbook_version_loader.rb +++ b/lib/chef/cookbook/cookbook_version_loader.rb @@ -58,8 +58,8 @@ class Chef load_root_files remove_ignored_files - if File.exists?(File.join(@cookbook_path, ".uploaded-cookbook-version.json")) - @uploaded_cookbook_version_file = File.join(@cookbook_path, ".uploaded-cookbook-version.json") + if File.exists?(File.join(@cookbook_path, UPLOADED_COOKBOOK_VERSION_FILE)) + @uploaded_cookbook_version_file = File.join(@cookbook_path, UPLOADED_COOKBOOK_VERSION_FILE) end if File.exists?(File.join(@cookbook_path, "metadata.rb")) @@ -71,7 +71,7 @@ class Chef end # Set frozen based on .uploaded-cookbook-version.json - if File.exists?(@uploaded_cookbook_version_file) + if @uploaded_cookbook_version_file && File.exists?(@uploaded_cookbook_version_file) begin data = Chef::JSONCompat.from_json(IO.read(@uploaded_cookbook_version_file), :create_additions => false) @frozen = data['frozen?'] @@ -144,7 +144,7 @@ class Chef def load_root_files Dir.glob(File.join(@cookbook_path, '*'), File::FNM_DOTMATCH).each do |file| next if File.directory?(file) - next if File.basename(file) == '.uploaded-cookbook-version.json' + next if File.basename(file) == UPLOADED_COOKBOOK_VERSION_FILE @cookbook_settings[:root_filenames][file[@relative_path, 1]] = file end end |