diff options
author | Douwe Maan <douwe@gitlab.com> | 2019-01-15 19:26:27 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2019-01-17 02:35:34 +0300 |
commit | 8d81aa9d7921b2e220f29571e2ba804508624fb7 (patch) | |
tree | a09d5830856194234e95fa348c1b501edc4ed1ac /app | |
parent | c68de0e9edec903cdb7df7f0dd6730a9f1ae9013 (diff) |
Merge branch 'sh-suppress-duplicate-remote-mirror-notifications' into 'master'
Only send one notification for failed remote mirror
Closes #56222
See merge request gitlab-org/gitlab-ce!24381
(cherry picked from commit 9cd5c5f5359cdebc2ae9ba1d20d2e79bd18edce2)
6fbbd4ab Only send one notification for failed remote mirror
Diffstat (limited to 'app')
-rw-r--r-- | app/models/remote_mirror.rb | 12 | ||||
-rw-r--r-- | app/workers/remote_mirror_notification_worker.rb | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/app/models/remote_mirror.rb b/app/models/remote_mirror.rb index a3fa67c72bf..5eba7ddd75c 100644 --- a/app/models/remote_mirror.rb +++ b/app/models/remote_mirror.rb @@ -61,7 +61,10 @@ class RemoteMirror < ActiveRecord::Base timestamp = Time.now remote_mirror.update!( - last_update_at: timestamp, last_successful_update_at: timestamp, last_error: nil + last_update_at: timestamp, + last_successful_update_at: timestamp, + last_error: nil, + error_notification_sent: false ) end @@ -179,6 +182,10 @@ class RemoteMirror < ActiveRecord::Base project.repository.add_remote(remote_name, remote_url) end + def after_sent_notification + update_column(:error_notification_sent, true) + end + private def store_credentials @@ -221,7 +228,8 @@ class RemoteMirror < ActiveRecord::Base last_error: nil, last_update_at: nil, last_successful_update_at: nil, - update_status: 'finished' + update_status: 'finished', + error_notification_sent: false ) end diff --git a/app/workers/remote_mirror_notification_worker.rb b/app/workers/remote_mirror_notification_worker.rb index 70c2e857d09..5bafe8e2046 100644 --- a/app/workers/remote_mirror_notification_worker.rb +++ b/app/workers/remote_mirror_notification_worker.rb @@ -9,7 +9,10 @@ class RemoteMirrorNotificationWorker # We check again if there's an error because a newer run since this job was # fired could've completed successfully. return unless remote_mirror && remote_mirror.last_error.present? + return if remote_mirror.error_notification_sent? NotificationService.new.remote_mirror_update_failed(remote_mirror) + + remote_mirror.after_sent_notification end end |