diff options
author | Gabriel Mazetto <brodock@gmail.com> | 2019-03-01 08:47:26 +0100 |
---|---|---|
committer | Gabriel Mazetto <brodock@gmail.com> | 2019-03-01 15:50:28 +0100 |
commit | 3524a618d61a401b589bf6025cb50e042d532a4f (patch) | |
tree | 89478435977cba2b677dd7712933dfd9aea1a328 /app/services/projects | |
parent | 61d77a042da2ada48cdcd83f97923780aac407f4 (diff) | |
download | gitlab-ce-3524a618d61a401b589bf6025cb50e042d532a4f.tar.gz |
Improve migration/rollback logic for attachments
Diffstat (limited to 'app/services/projects')
-rw-r--r-- | app/services/projects/hashed_storage/migrate_attachments_service.rb | 10 | ||||
-rw-r--r-- | app/services/projects/hashed_storage/rollback_attachments_service.rb | 10 |
2 files changed, 14 insertions, 6 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 diff --git a/app/services/projects/hashed_storage/rollback_attachments_service.rb b/app/services/projects/hashed_storage/rollback_attachments_service.rb index c35b8787dee..6c370ac47e9 100644 --- a/app/services/projects/hashed_storage/rollback_attachments_service.rb +++ b/app/services/projects/hashed_storage/rollback_attachments_service.rb @@ -17,10 +17,14 @@ module Projects @new_disk_path = FileUploader.base_dir(project) 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 |