Start persisting runner_type when creating runners
This commit is contained in:
parent
3dbcc02db0
commit
0d30b00de8
5 changed files with 40 additions and 4 deletions
|
@ -67,6 +67,12 @@ module Ci
|
||||||
ref_protected: 1
|
ref_protected: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum runner_type: {
|
||||||
|
instance_type: 1,
|
||||||
|
group_type: 2,
|
||||||
|
project_type: 3
|
||||||
|
}
|
||||||
|
|
||||||
cached_attr_reader :version, :revision, :platform, :architecture, :contacted_at, :ip_address
|
cached_attr_reader :version, :revision, :platform, :architecture, :contacted_at, :ip_address
|
||||||
|
|
||||||
chronic_duration_attr :maximum_timeout_human_readable, :maximum_timeout
|
chronic_duration_attr :maximum_timeout_human_readable, :maximum_timeout
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
class AddRunnerTypeToCiRunners < ActiveRecord::Migration
|
||||||
|
include Gitlab::Database::MigrationHelpers
|
||||||
|
|
||||||
|
DOWNTIME = false
|
||||||
|
|
||||||
|
def change
|
||||||
|
add_column :ci_runners, :runner_type, :integer
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,20 @@
|
||||||
|
class BackfillRunnerTypeForCiRunnersPostMigrate < ActiveRecord::Migration
|
||||||
|
include Gitlab::Database::MigrationHelpers
|
||||||
|
|
||||||
|
DOWNTIME = false
|
||||||
|
|
||||||
|
disable_ddl_transaction!
|
||||||
|
|
||||||
|
def up
|
||||||
|
update_column_in_batches(:ci_runners, :runner_type, 1) do |table, query|
|
||||||
|
query.where(table[:is_shared].eq(true)).where(table[:runner_type].eq(nil))
|
||||||
|
end
|
||||||
|
|
||||||
|
update_column_in_batches(:ci_runners, :runner_type, 3) do |table, query|
|
||||||
|
query.where(table[:is_shared].eq(false)).where(table[:runner_type].eq(nil))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20180425131009) do
|
ActiveRecord::Schema.define(version: 20180430143705) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -479,6 +479,7 @@ ActiveRecord::Schema.define(version: 20180425131009) do
|
||||||
t.integer "access_level", default: 0, null: false
|
t.integer "access_level", default: 0, null: false
|
||||||
t.string "ip_address"
|
t.string "ip_address"
|
||||||
t.integer "maximum_timeout"
|
t.integer "maximum_timeout"
|
||||||
|
t.integer "runner_type"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "ci_runners", ["contacted_at"], name: "index_ci_runners_on_contacted_at", using: :btree
|
add_index "ci_runners", ["contacted_at"], name: "index_ci_runners_on_contacted_at", using: :btree
|
||||||
|
|
|
@ -23,13 +23,13 @@ module API
|
||||||
runner =
|
runner =
|
||||||
if runner_registration_token_valid?
|
if runner_registration_token_valid?
|
||||||
# Create shared runner. Requires admin access
|
# Create shared runner. Requires admin access
|
||||||
Ci::Runner.create(attributes.merge(is_shared: true))
|
Ci::Runner.create(attributes.merge(is_shared: true, runner_type: :instance_type))
|
||||||
elsif project = Project.find_by(runners_token: params[:token])
|
elsif project = Project.find_by(runners_token: params[:token])
|
||||||
# Create a specific runner for the project
|
# Create a specific runner for the project
|
||||||
project.runners.create(attributes)
|
project.runners.create(attributes.merge(runner_type: :project_type))
|
||||||
elsif group = Group.find_by(runners_token: params[:token])
|
elsif group = Group.find_by(runners_token: params[:token])
|
||||||
# Create a specific runner for the group
|
# Create a specific runner for the group
|
||||||
group.runners.create(attributes)
|
group.runners.create(attributes.merge(runner_type: :group_type))
|
||||||
end
|
end
|
||||||
|
|
||||||
break forbidden! unless runner
|
break forbidden! unless runner
|
||||||
|
|
Loading…
Reference in a new issue