Commit a5accabe authored by Tiago Botelho's avatar Tiago Botelho

Moves mirror updating logic over to project update service

parent 8c1215f3
......@@ -15,7 +15,9 @@ class Projects::MirrorsController < Projects::ApplicationController
end
def update
if project.update(mirror_params)
result = ::Projects::UpdateService.new(project, current_user, mirror_params).execute
if result[:status] == :success
flash[:notice] = 'Mirroring settings were successfully updated.'
else
flash[:alert] = project.errors.full_messages.join(', ').html_safe
......
......@@ -26,15 +26,16 @@ module EE
override :update
def update
if project.update(safe_mirror_params)
if project.mirror?
project.force_import_job!
result = ::Projects::UpdateService.new(project, current_user, safe_mirror_params).execute
flash[:notice] = "Mirroring settings were successfully updated. The project is being updated."
if result[:status] == :success
flash[:notice] =
if project.mirror?
"Mirroring settings were successfully updated. The project is being updated."
elsif project.previous_changes.key?('mirror')
flash[:notice] = "Mirroring was successfully disabled."
"Mirroring was successfully disabled."
else
flash[:notice] = "Mirroring settings were successfully updated."
"Mirroring settings were successfully updated."
end
else
flash[:alert] = project.errors.full_messages.join(', ').html_safe
......
......@@ -11,6 +11,9 @@ module EE
params.delete(:mirror)
params.delete(:mirror_user_id)
params.delete(:mirror_trigger_builds)
params.delete(:only_mirror_protected_branches)
params.delete(:mirror_overwrites_diverged_branches)
params.delete(:import_data_attributes)
end
should_remove_old_approvers = params.delete(:remove_old_approvers)
......@@ -34,6 +37,7 @@ module EE
log_audit_events
sync_wiki_on_enable if !wiki_was_enabled && project.wiki_enabled?
project.force_import_job! if ::Gitlab::Utils.to_boolean(params[:mirror]) && project.mirror?
end
result
......
......@@ -15,8 +15,6 @@ describe Projects::MirrorsController do
end
it 'allows to create a remote mirror' do
expect_any_instance_of(EE::Project).to receive(:force_import_job!)
expect do
do_put(project, remote_mirrors_attributes: { '0' => { 'enabled' => 1, 'url' => url } })
end.to change { RemoteMirror.count }.to(1)
......
......@@ -144,6 +144,8 @@ describe ProjectsController do
end
it 'updates repository mirror attributes' do
expect_any_instance_of(EE::Project).to receive(:force_import_job!)
put :update,
namespace_id: project.namespace,
id: project,
......
......@@ -310,6 +310,7 @@ module API
authorize! :change_visibility_level, user_project if attrs[:visibility].present?
attrs = translate_params_for_compatibility(attrs)
attrs[:mirror] = user_project.mirror? unless attrs[:mirror].present?
attrs[:mirror_user_id] = current_user.id unless valid_mirror_user?(attrs)
result = ::Projects::UpdateService.new(user_project, current_user, attrs).execute
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment