diff options
author | Daniel DeLeo <dan@opscode.com> | 2011-03-25 08:34:54 -0700 |
---|---|---|
committer | Daniel DeLeo <dan@opscode.com> | 2011-03-25 08:34:54 -0700 |
commit | 82e0a8a0cd13e0480a96c6d9c881838bcc92ced4 (patch) | |
tree | e1281968d25a95e04be4c0e8289dae880f0cedb5 /chef-server-api | |
parent | 0a53d6d6e3752b0ed2c5697557588b0cba094303 (diff) | |
download | chef-82e0a8a0cd13e0480a96c6d9c881838bcc92ced4.tar.gz |
[CHEF-2076] Make CookbookVersions freezable
Diffstat (limited to 'chef-server-api')
-rw-r--r-- | chef-server-api/app/controllers/cookbooks.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/chef-server-api/app/controllers/cookbooks.rb b/chef-server-api/app/controllers/cookbooks.rb index d04eb0ed90..c109dadf87 100644 --- a/chef-server-api/app/controllers/cookbooks.rb +++ b/chef-server-api/app/controllers/cookbooks.rb @@ -119,6 +119,12 @@ class Cookbooks < Application cookbook = params['inflated_object'] end + if cookbook.frozen_version? && params[:force].nil? + raise Conflict, "The cookbook #{cookbook.name} at version #{cookbook.version} is frozen. Use the 'force' option to override." + end + + cookbook.freeze_version if params["inflated_object"].frozen_version? + # ensure that all checksums referred to by the manifest have been uploaded. Chef::CookbookVersion::COOKBOOK_SEGMENTS.each do |segment| next unless cookbook.manifest[segment] |