summaryrefslogtreecommitdiff
path: root/app/services/projects/hashed_storage/migrate_attachments_service.rb
diff options
context:
space:
mode:
authorGabriel Mazetto <brodock@gmail.com>2019-03-01 08:47:26 +0100
committerGabriel Mazetto <brodock@gmail.com>2019-03-01 15:50:28 +0100
commit3524a618d61a401b589bf6025cb50e042d532a4f (patch)
tree89478435977cba2b677dd7712933dfd9aea1a328 /app/services/projects/hashed_storage/migrate_attachments_service.rb
parent61d77a042da2ada48cdcd83f97923780aac407f4 (diff)
downloadgitlab-ce-3524a618d61a401b589bf6025cb50e042d532a4f.tar.gz
Improve migration/rollback logic for attachments
Diffstat (limited to 'app/services/projects/hashed_storage/migrate_attachments_service.rb')
-rw-r--r--app/services/projects/hashed_storage/migrate_attachments_service.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/app/services/projects/hashed_storage/migrate_attachments_service.rb b/app/services/projects/hashed_storage/migrate_attachments_service.rb
index 2b8b7e459e0..9eaeb6eb4e7 100644
--- a/app/services/projects/hashed_storage/migrate_attachments_service.rb
+++ b/app/services/projects/hashed_storage/migrate_attachments_service.rb
@@ -22,10 +22,14 @@ module Projects
@new_disk_path = project.disk_path
result = move_folder!(origin, target)
- project.save!
- if result && block_given?
- yield
+ if result
+ project.save!
+
+ yield if block_given?
+ else
+ # Rollback changes
+ project.rollback!
end
result