summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kozono <mkozono@gmail.com>2018-03-12 16:55:06 -0700
committerMichael Kozono <mkozono@gmail.com>2018-03-13 15:05:28 -0700
commitef62a7c2d17bb84c986d6e8db5f2bd6559803129 (patch)
treee06519ab5d728777279b23eb4d7f1029d95fbd8d
parentc2ea494187b09b9cd036c5c882232fff017eef1b (diff)
downloadgitlab-ce-ef62a7c2d17bb84c986d6e8db5f2bd6559803129.tar.gz
Ensure data integrity
-rw-r--r--app/models/concerns/storage/legacy_namespace.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/app/models/concerns/storage/legacy_namespace.rb b/app/models/concerns/storage/legacy_namespace.rb
index 7ab5518f17a..4fba1494814 100644
--- a/app/models/concerns/storage/legacy_namespace.rb
+++ b/app/models/concerns/storage/legacy_namespace.rb
@@ -7,6 +7,10 @@ module Storage
raise Gitlab::UpdatePathError.new('Namespace cannot be moved, because at least one project has tags in container registry')
end
+ parent_was = if parent_changed? && parent_id_was.present?
+ Namespace.find(parent_id_was) # raise NotFound early if needed
+ end
+
expires_full_path_cache
# Move the namespace directory in all storage paths used by member projects
@@ -28,7 +32,7 @@ module Storage
end
if parent_changed?
- former_parent_full_path = parent_id_was.nil? ? nil : Namespace.find(parent_id_was).full_path
+ former_parent_full_path = parent_was.full_path
parent_full_path = parent&.full_path
Gitlab::UploadsTransfer.new.move_namespace(path, former_parent_full_path, parent_full_path)
Gitlab::PagesTransfer.new.move_namespace(path, former_parent_full_path, parent_full_path)