Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/api/runners.md4
-rw-r--r--lib/api/runners.rb17
2 files changed, 9 insertions, 12 deletions
diff --git a/doc/api/runners.md b/doc/api/runners.md
index ac814bbf19a..66476e7db64 100644
--- a/doc/api/runners.md
+++ b/doc/api/runners.md
@@ -15,7 +15,7 @@ GET /runners?scope=active
| Attribute | Type | Required | Description |
|-----------|---------|----------|---------------------|
-| `scope` | string | no | The scope of specific runners to show, one of: `active`, `paused`, `online`; showing all runners if none provided |
+| `scope` | string | no | The scope of specific runners to show, one of: `active`, `paused`, `online`, `offline`; showing all runners if none provided |
```
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners"
@@ -60,7 +60,7 @@ GET /runners/all?scope=online
| Attribute | Type | Required | Description |
|-----------|---------|----------|---------------------|
-| `scope` | string | no | The scope of runners to show, one of: `specific`, `shared`, `active`, `paused`, `online`; showing all runners if none provided |
+| `scope` | string | no | The scope of runners to show, one of: `specific`, `shared`, `active`, `paused`, `online`, `offline`; showing all runners if none provided |
```
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners/all"
diff --git a/lib/api/runners.rb b/lib/api/runners.rb
index 51242341dba..bf9cd6234a3 100644
--- a/lib/api/runners.rb
+++ b/lib/api/runners.rb
@@ -9,12 +9,12 @@ module API
success Entities::Runner
end
params do
- optional :scope, type: String, values: %w[active paused online],
+ optional :scope, type: String, values: %w[active paused online offline],
desc: 'The scope of specific runners to show'
use :pagination
end
get do
- runners = filter_runners(current_user.ci_owned_runners, params[:scope], without: %w(specific shared))
+ runners = filter_runners(current_user.ci_owned_runners, params[:scope], only: Ci::Runner::AVAILABLE_STATUSES)
present paginate(runners), with: Entities::Runner
end
@@ -22,7 +22,7 @@ module API
success Entities::Runner
end
params do
- optional :scope, type: String, values: %w[active paused online specific shared],
+ optional :scope, type: String, values: %w[active paused online offline specific shared],
desc: 'The scope of specific runners to show'
use :pagination
end
@@ -114,7 +114,7 @@ module API
success Entities::Runner
end
params do
- optional :scope, type: String, values: %w[active paused online specific shared],
+ optional :scope, type: String, values: %w[active paused online offline specific shared],
desc: 'The scope of specific runners to show'
use :pagination
end
@@ -158,15 +158,12 @@ module API
end
helpers do
- def filter_runners(runners, scope, options = {})
+ def filter_runners(runners, scope, only: nil)
return runners unless scope.present?
- available_scopes = ::Ci::Runner::AVAILABLE_SCOPES
- if options[:without]
- available_scopes = available_scopes - options[:without]
- end
+ available_scopes = only || ::Ci::Runner::AVAILABLE_SCOPES
- if (available_scopes & [scope]).empty?
+ unless available_scopes.include?(scope)
render_api_error!('Scope contains invalid value', 400)
end