diff options
Diffstat (limited to 'app/models/ci/runner.rb')
-rw-r--r-- | app/models/ci/runner.rb | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb index a7f3ff938c3..bac85b6095e 100644 --- a/app/models/ci/runner.rb +++ b/app/models/ci/runner.rb @@ -13,6 +13,7 @@ module Ci include TaggableQueries include Presentable include EachBatch + include Ci::HasRunnerExecutor add_authentication_token_field :token, encrypted: :optional, expires_at: :compute_token_expiration @@ -27,21 +28,6 @@ module Ci project_type: 3 } - enum executor_type: { - unknown: 0, - custom: 1, - shell: 2, - docker: 3, - docker_windows: 4, - docker_ssh: 5, - ssh: 6, - parallels: 7, - virtualbox: 8, - docker_machine: 9, - docker_ssh_machine: 10, - kubernetes: 11 - }, _suffix: true - # This `ONLINE_CONTACT_TIMEOUT` needs to be larger than # `RUNNER_QUEUE_EXPIRY_TIME+UPDATE_CONTACT_COLUMN_EVERY` # @@ -68,6 +54,7 @@ module Ci TAG_LIST_MAX_LENGTH = 50 + has_many :runner_machines, inverse_of: :runner has_many :builds has_many :runner_projects, inverse_of: :runner, autosave: true, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent has_many :projects, through: :runner_projects, disable_joins: true @@ -77,6 +64,8 @@ module Ci has_one :last_build, -> { order('id DESC') }, class_name: 'Ci::Build' has_one :runner_version, primary_key: :version, foreign_key: :version, class_name: 'Ci::RunnerVersion' + belongs_to :creator, class_name: 'User', optional: true + before_save :ensure_token scope :active, -> (value = true) { where(active: value) } @@ -440,7 +429,9 @@ module Ci ::Gitlab::Database::LoadBalancing::Session.without_sticky_writes do values = values&.slice(:version, :revision, :platform, :architecture, :ip_address, :config, :executor) || {} values[:contacted_at] = Time.current - values[:executor_type] = EXECUTOR_NAME_TO_TYPES.fetch(values.delete(:executor), :unknown) + if values.include?(:executor) + values[:executor_type] = EXECUTOR_NAME_TO_TYPES.fetch(values.delete(:executor), :unknown) + end cache_attributes(values) |