diff options
Diffstat (limited to 'lib/api/internal/container_registry/migration.rb')
-rw-r--r-- | lib/api/internal/container_registry/migration.rb | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/lib/api/internal/container_registry/migration.rb b/lib/api/internal/container_registry/migration.rb index b84e14c6f31..c750db94dab 100644 --- a/lib/api/internal/container_registry/migration.rb +++ b/lib/api/internal/container_registry/migration.rb @@ -5,6 +5,7 @@ module API module ContainerRegistry class Migration < ::API::Base feature_category :container_registry + urgency :low STATUS_PRE_IMPORT_COMPLETE = 'pre_import_complete' STATUS_PRE_IMPORT_FAILED = 'pre_import_failed' @@ -36,23 +37,25 @@ module API requires :status, type: String, values: POSSIBLE_VALUES, desc: 'The migration step status' end put 'internal/registry/repositories/*repository_path/migration/status' do - repository = find_repository!(declared_params[:repository_path]) + ::Gitlab::Database::LoadBalancing::Session.current.use_primary do + repository = find_repository!(declared_params[:repository_path]) - unless repository.migration_in_active_state? - bad_request!("Wrong migration state (#{repository.migration_state})") - end - - case declared_params[:status] - when STATUS_PRE_IMPORT_COMPLETE - unless repository.finish_pre_import_and_start_import - bad_request!("Couldn't transition from pre_importing to importing") + unless repository.migration_in_active_state? + bad_request!("Wrong migration state (#{repository.migration_state})") end - when STATUS_IMPORT_COMPLETE - unless repository.finish_import - bad_request!("Couldn't transition from importing to import_done") + + case declared_params[:status] + when STATUS_PRE_IMPORT_COMPLETE + unless repository.finish_pre_import_and_start_import + bad_request!("Couldn't transition from pre_importing to importing") + end + when STATUS_IMPORT_COMPLETE + unless repository.finish_import + bad_request!("Couldn't transition from importing to import_done") + end + when STATUS_IMPORT_FAILED, STATUS_PRE_IMPORT_FAILED + repository.abort_import! end - when STATUS_IMPORT_FAILED, STATUS_PRE_IMPORT_FAILED - repository.abort_import end status 200 |