diff options
author | Daniel DeLeo <dan@opscode.com> | 2011-04-07 23:36:20 -0700 |
---|---|---|
committer | Daniel DeLeo <dan@opscode.com> | 2011-04-07 23:37:36 -0700 |
commit | 8a019bf992dd1f483db2d1cf82612ba262fbfaa2 (patch) | |
tree | 0e47187a5e963f030c30af334508c90c99a0700f | |
parent | 024a8cead2e8b70b315d99559b9f8e7f17fd09ab (diff) | |
download | chef-8a019bf992dd1f483db2d1cf82612ba262fbfaa2.tar.gz |
[CHEF-2198] Fix incorrect checksum errors on upload
-rw-r--r-- | chef/lib/chef/knife/cookbook_upload.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/chef/lib/chef/knife/cookbook_upload.rb b/chef/lib/chef/knife/cookbook_upload.rb index e7e8e1dcc0..bafe3cc2c8 100644 --- a/chef/lib/chef/knife/cookbook_upload.rb +++ b/chef/lib/chef/knife/cookbook_upload.rb @@ -150,7 +150,10 @@ class Chef # if only you people wouldn't put broken symlinks in your cookbooks in # the first place. ;) def check_for_broken_links(cookbook) - broken_files = cookbook.manifest_records_by_path.select do |path, info| + # MUST!! dup the cookbook version object--it memoizes its + # manifest object, but the manifest becomes invalid when you + # regenerate the metadata + broken_files = cookbook.dup.manifest_records_by_path.select do |path, info| info[CHECKSUM].nil? || info[CHECKSUM] !~ MATCH_CHECKSUM end unless broken_files.empty? |