Skip to content
Snippets Groups Projects

Admin runner filtering by version

Merged Markus Ferrell requested to merge markus.ferrell/gitlab:admin_runner_sorting into master
All threads resolved!
2 files
+ 12
9
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -62,6 +62,16 @@ class RunnerManager < Ci::ApplicationRecord
scope :order_id_desc, -> { order(id: :desc) }
scope :with_version_prefix, ->(value) do
regex = version_regex_expression_for_version(value)
value += '.' if regex.end_with?('\.') && !value.end_with?('.')
substring = Arel::Nodes::NamedFunction.new('substring', [
Ci::RunnerManager.arel_table[:version],
Arel.sql("'#{regex}'::text")
])
where(substring.eq(sanitize_sql_like(value)))
end
scope :with_upgrade_status, ->(upgrade_status) do
joins(:runner_version).where(runner_version: { status: upgrade_status })
end
@@ -137,5 +147,16 @@ def schedule_runner_version_update(new_version)
Ci::Runners::ProcessRunnerVersionUpdateWorker.perform_async(new_version)
end
def self.version_regex_expression_for_version(version)
case version
when /\d+\.\d+\.\d+/
'^\d+\.\d+\.\d+'
when /\d+\.\d+(\.)?/
'^\d+\.\d+\.'
else
'^\d+\.'
end
end
end
end
Loading