Skip to content
Snippets Groups Projects
Commit 9dfd2a98 authored by vshushlin's avatar vshushlin
Browse files

Merge branch 'admin_runner_upgrade_status_sorting' into 'master'

parents b1742a96 7553611c
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -517,10 +517,7 @@ def gitlab_hosted?
private
 
scope :with_upgrade_status, ->(upgrade_status) do
joins(:runner_managers)
.joins("INNER JOIN #{RunnerVersion.quoted_table_name} runner_version " \
"ON runner_version.version = #{RunnerManager.quoted_table_name}.version")
.where(runner_version: { status: upgrade_status })
joins(:runner_managers).merge(RunnerManager.with_upgrade_status(upgrade_status))
end
 
EXECUTOR_NAME_TO_TYPES = {
Loading
Loading
Loading
Loading
@@ -62,6 +62,10 @@ class RunnerManager < Ci::ApplicationRecord
 
scope :order_id_desc, -> { order(id: :desc) }
 
scope :with_upgrade_status, ->(upgrade_status) do
joins(:runner_version).where(runner_version: { status: upgrade_status })
end
def self.online_contact_time_deadline
Ci::Runner.online_contact_time_deadline
end
Loading
Loading
Loading
Loading
@@ -375,4 +375,42 @@ def does_db_update
it { is_expected.to contain_exactly build }
end
end
describe '.with_upgrade_status' do
subject(:scope) { described_class.with_upgrade_status(upgrade_status) }
let_it_be(:runner_manager_14_0_0) { create(:ci_runner_machine, version: '14.0.0') }
let_it_be(:runner_manager_14_1_0) { create(:ci_runner_machine, version: '14.1.0') }
let_it_be(:runner_manager_14_1_1) { create(:ci_runner_machine, version: '14.1.1') }
before_all do
create(:ci_runner_version, version: '14.0.0', status: :available)
create(:ci_runner_version, version: '14.1.0', status: :recommended)
create(:ci_runner_version, version: '14.1.1', status: :unavailable)
end
context 'as :unavailable' do
let(:upgrade_status) { :unavailable }
it 'returns runners with runner managers whose version is assigned :unavailable' do
is_expected.to contain_exactly(runner_manager_14_1_1)
end
end
context 'as :available' do
let(:upgrade_status) { :available }
it 'returns runners with runner managers whose version is assigned :available' do
is_expected.to contain_exactly(runner_manager_14_0_0)
end
end
context 'as :recommended' do
let(:upgrade_status) { :recommended }
it 'returns runners with runner managers whose version is assigned :recommended' do
is_expected.to contain_exactly(runner_manager_14_1_0)
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment