Remove the key from the queue when runner is deleted
This commit is contained in:
parent
7a109402a8
commit
7a4d723e6b
2 changed files with 27 additions and 0 deletions
|
@ -38,6 +38,8 @@ module Ci
|
||||||
|
|
||||||
acts_as_taggable
|
acts_as_taggable
|
||||||
|
|
||||||
|
after_destroy :cleanup_runner_queue
|
||||||
|
|
||||||
# Searches for runners matching the given query.
|
# Searches for runners matching the given query.
|
||||||
#
|
#
|
||||||
# This method uses ILIKE on PostgreSQL and LIKE on MySQL.
|
# This method uses ILIKE on PostgreSQL and LIKE on MySQL.
|
||||||
|
@ -143,6 +145,12 @@ module Ci
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def cleanup_runner_queue
|
||||||
|
Gitlab::Redis.with do |redis|
|
||||||
|
redis.del(runner_queue_key)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def runner_queue_key
|
def runner_queue_key
|
||||||
"runner:build_queue:#{self.token}"
|
"runner:build_queue:#{self.token}"
|
||||||
end
|
end
|
||||||
|
|
|
@ -319,6 +319,25 @@ describe Ci::Runner, models: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#destroy' do
|
||||||
|
let(:runner) { create(:ci_runner) }
|
||||||
|
|
||||||
|
context 'when there is a tick in the queue' do
|
||||||
|
let!(:queue_key) { runner.send(:runner_queue_key) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
runner.tick_runner_queue
|
||||||
|
runner.destroy
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'cleans up the queue' do
|
||||||
|
Gitlab::Redis.with do |redis|
|
||||||
|
expect(redis.get(queue_key)).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '.assignable_for' do
|
describe '.assignable_for' do
|
||||||
let(:runner) { create(:ci_runner) }
|
let(:runner) { create(:ci_runner) }
|
||||||
let(:project) { create(:project) }
|
let(:project) { create(:project) }
|
||||||
|
|
Loading…
Reference in a new issue