add Ci::Runner.offline scope to API
This commit is contained in:
parent
00647b31b4
commit
f0d0400d0b
2 changed files with 9 additions and 12 deletions
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue