summaryrefslogtreecommitdiff
path: root/chef-server-api
diff options
context:
space:
mode:
authorDaniel DeLeo <dan@opscode.com>2011-03-25 08:34:54 -0700
committerDaniel DeLeo <dan@opscode.com>2011-03-25 08:34:54 -0700
commit82e0a8a0cd13e0480a96c6d9c881838bcc92ced4 (patch)
treee1281968d25a95e04be4c0e8289dae880f0cedb5 /chef-server-api
parent0a53d6d6e3752b0ed2c5697557588b0cba094303 (diff)
downloadchef-82e0a8a0cd13e0480a96c6d9c881838bcc92ced4.tar.gz
[CHEF-2076] Make CookbookVersions freezable
Diffstat (limited to 'chef-server-api')
-rw-r--r--chef-server-api/app/controllers/cookbooks.rb6
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]