diff options
author | Robert Speicher <rspeicher@gmail.com> | 2019-07-23 15:00:11 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2019-07-23 15:00:11 +0000 |
commit | d892e80bf0161b535389c91ccb53539e4f08d790 (patch) | |
tree | f5d2577f457d3320d305e5e40033848e5b783af1 | |
parent | 2eda97befe1ce32968040cf2a2b7d87611c0f091 (diff) | |
parent | ab11eee1d6e3881399b671f0ebe857a085321371 (diff) | |
download | gitlab-ce-d892e80bf0161b535389c91ccb53539e4f08d790.tar.gz |
Merge branch 'bvl-mark-remote-mirrors-as-failed-sooner' into 'master'
Mark mirrors as failed 1 hour after they started
See merge request gitlab-org/gitlab-ce!30999
-rw-r--r-- | app/models/remote_mirror.rb | 4 | ||||
-rw-r--r-- | changelogs/unreleased/bvl-mark-remote-mirrors-as-failed-sooner.yml | 5 | ||||
-rw-r--r-- | spec/models/remote_mirror_spec.rb | 15 |
3 files changed, 19 insertions, 5 deletions
diff --git a/app/models/remote_mirror.rb b/app/models/remote_mirror.rb index af705b29f7a..6b5605f9999 100644 --- a/app/models/remote_mirror.rb +++ b/app/models/remote_mirror.rb @@ -31,7 +31,7 @@ class RemoteMirror < ApplicationRecord scope :enabled, -> { where(enabled: true) } scope :started, -> { with_update_status(:started) } - scope :stuck, -> { started.where('last_update_at < ? OR (last_update_at IS NULL AND updated_at < ?)', 1.day.ago, 1.day.ago) } + scope :stuck, -> { started.where('last_update_at < ? OR (last_update_at IS NULL AND updated_at < ?)', 1.hour.ago, 3.hours.ago) } state_machine :update_status, initial: :none do event :update_start do @@ -173,7 +173,7 @@ class RemoteMirror < ApplicationRecord result = URI.parse(url) result.password = '*****' if result.password - result.user = '*****' if result.user && result.user != "git" # tokens or other data may be saved as user + result.user = '*****' if result.user && result.user != 'git' # tokens or other data may be saved as user result.to_s end diff --git a/changelogs/unreleased/bvl-mark-remote-mirrors-as-failed-sooner.yml b/changelogs/unreleased/bvl-mark-remote-mirrors-as-failed-sooner.yml new file mode 100644 index 00000000000..1db0a4952b2 --- /dev/null +++ b/changelogs/unreleased/bvl-mark-remote-mirrors-as-failed-sooner.yml @@ -0,0 +1,5 @@ +--- +title: Mark push mirrors as failed after 1 hour +merge_request: 30999 +author: +type: changed diff --git a/spec/models/remote_mirror_spec.rb b/spec/models/remote_mirror_spec.rb index e14b19db915..687b0935c55 100644 --- a/spec/models/remote_mirror_spec.rb +++ b/spec/models/remote_mirror_spec.rb @@ -113,7 +113,7 @@ describe RemoteMirror, :mailer do remote_mirror = create(:remote_mirror) - expect(remote_mirror.remote_name).to eq("remote_mirror_secret") + expect(remote_mirror.remote_name).to eq('remote_mirror_secret') end end @@ -201,11 +201,20 @@ describe RemoteMirror, :mailer do end context 'stuck mirrors' do - it 'includes mirrors stuck in started with no last_update_at set' do + it 'includes mirrors that were started over an hour ago' do + mirror = create_mirror(url: 'http://cantbeblank', + update_status: 'started', + last_update_at: 3.hours.ago, + updated_at: 2.hours.ago) + + expect(described_class.stuck.last).to eq(mirror) + end + + it 'includes mirrors started over 3 hours ago for their first sync' do mirror = create_mirror(url: 'http://cantbeblank', update_status: 'started', last_update_at: nil, - updated_at: 25.hours.ago) + updated_at: 4.hours.ago) expect(described_class.stuck.last).to eq(mirror) end |