diff options
Diffstat (limited to 'app/services/projects/container_repository/delete_tags_service.rb')
-rw-r--r-- | app/services/projects/container_repository/delete_tags_service.rb | 18 |
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 |