Commit 1c302d56 authored by Lin Jen-Shin's avatar Lin Jen-Shin

WIP, try to add views for locked runners

parent 0eeb4bed
...@@ -4,7 +4,7 @@ module Ci ...@@ -4,7 +4,7 @@ module Ci
LAST_CONTACT_TIME = 5.minutes.ago LAST_CONTACT_TIME = 5.minutes.ago
AVAILABLE_SCOPES = %w[specific shared active paused online] AVAILABLE_SCOPES = %w[specific shared active paused online]
FORM_EDITABLE = %i[description tag_list active run_untagged] FORM_EDITABLE = %i[description tag_list active run_untagged locked]
has_many :builds, class_name: 'Ci::Build' has_many :builds, class_name: 'Ci::Build'
has_many :runner_projects, dependent: :destroy, class_name: 'Ci::RunnerProject' has_many :runner_projects, dependent: :destroy, class_name: 'Ci::RunnerProject'
......
...@@ -12,6 +12,12 @@ ...@@ -12,6 +12,12 @@
.checkbox .checkbox
= f.check_box :run_untagged = f.check_box :run_untagged
%span.light Indicates whether this runner can pick jobs without tags %span.light Indicates whether this runner can pick jobs without tags
.form-group
= label :locked, 'Exclusive to this project', class: 'control-label'
.col-sm-10
.checkbox
= f.check_box :locked
%span.light Indicates whether this runner can be enabled for other projects
.form-group .form-group
= label_tag :token, class: 'control-label' do = label_tag :token, class: 'control-label' do
Token Token
......
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
%tr %tr
%td Can run untagged jobs %td Can run untagged jobs
%td= @runner.run_untagged? ? 'Yes' : 'No' %td= @runner.run_untagged? ? 'Yes' : 'No'
%tr
%td Exclusive to this project
%td= @runner.locked? ? 'Yes' : 'No'
%tr %tr
%td Tags %td Tags
%td %td
......
...@@ -413,6 +413,7 @@ module API ...@@ -413,6 +413,7 @@ module API
class RunnerDetails < Runner class RunnerDetails < Runner
expose :tag_list expose :tag_list
expose :run_untagged expose :run_untagged
expose :locked
expose :version, :revision, :platform, :architecture expose :version, :revision, :platform, :architecture
expose :contacted_at expose :contacted_at
expose :token, if: lambda { |runner, options| options[:current_user].is_admin? || !runner.is_shared? } expose :token, if: lambda { |runner, options| options[:current_user].is_admin? || !runner.is_shared? }
......
...@@ -49,7 +49,7 @@ module API ...@@ -49,7 +49,7 @@ module API
runner = get_runner(params[:id]) runner = get_runner(params[:id])
authenticate_update_runner!(runner) authenticate_update_runner!(runner)
attrs = attributes_for_keys [:description, :active, :tag_list, :run_untagged] attrs = attributes_for_keys [:description, :active, :tag_list, :run_untagged, :locked]
if runner.update(attrs) if runner.update(attrs)
present runner, with: Entities::RunnerDetails, current_user: current_user present runner, with: Entities::RunnerDetails, current_user: current_user
else else
......
...@@ -29,7 +29,8 @@ module Ci ...@@ -29,7 +29,8 @@ module Ci
required_attributes! [:token] required_attributes! [:token]
attributes = { description: params[:description], attributes = { description: params[:description],
tag_list: params[:tag_list] } tag_list: params[:tag_list],
locked: !!params[:locked] }
unless params[:run_untagged].nil? unless params[:run_untagged].nil?
attributes[:run_untagged] = params[:run_untagged] attributes[:run_untagged] = params[:run_untagged]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment