diff options
author | danielsdeleo <dan@opscode.com> | 2013-06-11 13:31:42 -0700 |
---|---|---|
committer | danielsdeleo <dan@opscode.com> | 2013-06-12 19:44:17 -0700 |
commit | 0d6f062a077dace81b482bd624b5365b963a6d38 (patch) | |
tree | 60c92764ba7b88c6f257cc5502b5577979033e40 /lib/chef/provider/deploy | |
parent | 83ad7d9aeb3f7c4b752dd92d4ca1f3671a0ab9ac (diff) | |
download | chef-0d6f062a077dace81b482bd624b5365b963a6d38.tar.gz |
attempt redeploy of failed deployment
`deploy_revision` provider now stores releases in the release history
cache only after a successful deploy. As a result, a partially deployed
application will be overwritten by a subsequent deploy to the same
revision (similar to force_deploy).
Fixes CHEF-2741
Diffstat (limited to 'lib/chef/provider/deploy')
-rw-r--r-- | lib/chef/provider/deploy/revision.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/chef/provider/deploy/revision.rb b/lib/chef/provider/deploy/revision.rb index 785e422a91..f1eb171cd7 100644 --- a/lib/chef/provider/deploy/revision.rb +++ b/lib/chef/provider/deploy/revision.rb @@ -37,6 +37,20 @@ class Chef super end + def cleanup! + super + + known_releases = sorted_releases + + Dir["#{new_resource.deploy_to}/releases/*"].each do |release_dir| + unless known_releases.include?(release_dir) + converge_by("Remove unknown release in #{release_dir}") do + FileUtils.rm_rf(release_dir) + end + end + end + end + protected def release_created(release) |