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 ...@@ -15,7 +15,9 @@ class Projects::MirrorsController < Projects::ApplicationController
end end
def update 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.' flash[:notice] = 'Mirroring settings were successfully updated.'
else else
flash[:alert] = project.errors.full_messages.join(', ').html_safe flash[:alert] = project.errors.full_messages.join(', ').html_safe
......
...@@ -26,16 +26,17 @@ module EE ...@@ -26,16 +26,17 @@ module EE
override :update override :update
def update def update
if project.update(safe_mirror_params) result = ::Projects::UpdateService.new(project, current_user, safe_mirror_params).execute
if project.mirror?
project.force_import_job! if result[:status] == :success
flash[:notice] =
flash[:notice] = "Mirroring settings were successfully updated. The project is being updated." if project.mirror?
elsif project.previous_changes.key?('mirror') "Mirroring settings were successfully updated. The project is being updated."
flash[:notice] = "Mirroring was successfully disabled." elsif project.previous_changes.key?('mirror')
else "Mirroring was successfully disabled."
flash[:notice] = "Mirroring settings were successfully updated." else
end "Mirroring settings were successfully updated."
end
else else
flash[:alert] = project.errors.full_messages.join(', ').html_safe flash[:alert] = project.errors.full_messages.join(', ').html_safe
end end
......
...@@ -11,6 +11,9 @@ module EE ...@@ -11,6 +11,9 @@ module EE
params.delete(:mirror) params.delete(:mirror)
params.delete(:mirror_user_id) params.delete(:mirror_user_id)
params.delete(:mirror_trigger_builds) params.delete(:mirror_trigger_builds)
params.delete(:only_mirror_protected_branches)
params.delete(:mirror_overwrites_diverged_branches)
params.delete(:import_data_attributes)
end end
should_remove_old_approvers = params.delete(:remove_old_approvers) should_remove_old_approvers = params.delete(:remove_old_approvers)
...@@ -34,6 +37,7 @@ module EE ...@@ -34,6 +37,7 @@ module EE
log_audit_events log_audit_events
sync_wiki_on_enable if !wiki_was_enabled && project.wiki_enabled? 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 end
result result
......
...@@ -15,8 +15,6 @@ describe Projects::MirrorsController do ...@@ -15,8 +15,6 @@ describe Projects::MirrorsController do
end end
it 'allows to create a remote mirror' do it 'allows to create a remote mirror' do
expect_any_instance_of(EE::Project).to receive(:force_import_job!)
expect do expect do
do_put(project, remote_mirrors_attributes: { '0' => { 'enabled' => 1, 'url' => url } }) do_put(project, remote_mirrors_attributes: { '0' => { 'enabled' => 1, 'url' => url } })
end.to change { RemoteMirror.count }.to(1) end.to change { RemoteMirror.count }.to(1)
......
...@@ -144,6 +144,8 @@ describe ProjectsController do ...@@ -144,6 +144,8 @@ describe ProjectsController do
end end
it 'updates repository mirror attributes' do it 'updates repository mirror attributes' do
expect_any_instance_of(EE::Project).to receive(:force_import_job!)
put :update, put :update,
namespace_id: project.namespace, namespace_id: project.namespace,
id: project, id: project,
......
...@@ -310,6 +310,7 @@ module API ...@@ -310,6 +310,7 @@ module API
authorize! :change_visibility_level, user_project if attrs[:visibility].present? authorize! :change_visibility_level, user_project if attrs[:visibility].present?
attrs = translate_params_for_compatibility(attrs) 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) attrs[:mirror_user_id] = current_user.id unless valid_mirror_user?(attrs)
result = ::Projects::UpdateService.new(user_project, current_user, attrs).execute 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