summaryrefslogtreecommitdiff
path: root/app/models/ci
diff options
context:
space:
mode:
authorTomasz Maczukin <tomasz@maczukin.pl>2016-01-26 17:03:38 +0100
committerTomasz Maczukin <tomasz@maczukin.pl>2016-02-19 13:18:46 +0100
commit128be3c0103f601b2c80f3489646e57e202f6327 (patch)
tree293399797a6cb9cc5814eac25acd6e5d57c9f1ea /app/models/ci
parente586858eb58cc628f700c4f0d6ae7b574def3be9 (diff)
downloadgitlab-ce-128be3c0103f601b2c80f3489646e57e202f6327.tar.gz
Add basic runners management API
- add feature to list runners - add feature to show runners details - add feature to delete runner - add feature to update runner
Diffstat (limited to 'app/models/ci')
-rw-r--r--app/models/ci/runner.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb
index 38b20cd7faa..1e914b44499 100644
--- a/app/models/ci/runner.rb
+++ b/app/models/ci/runner.rb
@@ -22,6 +22,7 @@ module Ci
extend Ci::Model
LAST_CONTACT_TIME = 5.minutes.ago
+ AVAILABLE_SCOPES = ['specific', 'shared', 'active', 'paused', 'online']
has_many :builds, class_name: 'Ci::Build'
has_many :runner_projects, dependent: :destroy, class_name: 'Ci::RunnerProject'
@@ -38,6 +39,11 @@ module Ci
scope :online, ->() { where('contacted_at > ?', LAST_CONTACT_TIME) }
scope :ordered, ->() { order(id: :desc) }
+ scope :owned_or_shared, ->(project_id) do
+ joins('LEFT JOIN ci_runner_projects ON ci_runner_projects.runner_id = ci_runners.id')
+ .where("ci_runner_projects.gl_project_id = #{project_id} OR ci_runners.is_shared = true")
+ end
+
acts_as_taggable
def self.search(query)