summaryrefslogtreecommitdiff
path: root/app/services/projects/container_repository/delete_tags_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/projects/container_repository/delete_tags_service.rb')
-rw-r--r--app/services/projects/container_repository/delete_tags_service.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/app/services/projects/container_repository/delete_tags_service.rb b/app/services/projects/container_repository/delete_tags_service.rb
index b4a57c70111..a3e533c670e 100644
--- a/app/services/projects/container_repository/delete_tags_service.rb
+++ b/app/services/projects/container_repository/delete_tags_service.rb
@@ -8,13 +8,13 @@ module Projects
def execute(container_repository)
@container_repository = container_repository
- unless params[:container_expiration_policy]
+ unless container_expiration_policy?
return error('access denied') unless can?(current_user, :destroy_container_image, project)
end
@tag_names = params[:tags]
return error('not tags specified') if @tag_names.blank?
- return error('repository importing') if @container_repository.migration_importing?
+ return error('repository importing') if cancel_while_importing?
delete_tags
end
@@ -49,6 +49,20 @@ module Projects
log_error(log_data)
end
end
+
+ def cancel_while_importing?
+ return true if @container_repository.importing?
+
+ if container_expiration_policy?
+ return @container_repository.pre_importing? || @container_repository.pre_import_done?
+ end
+
+ false
+ end
+
+ def container_expiration_policy?
+ params[:container_expiration_policy].present?
+ end
end
end
end