diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-03 15:08:08 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-03-03 15:08:08 +0000 |
commit | 946771d0b016ae92b15a60bc3290a33b94191ffe (patch) | |
tree | 64862c2433989483f5fce45d5539242577a362eb /lib/api/admin | |
parent | f1e2fca19a90a6992c2020cf8c2159cfb0b61bca (diff) | |
download | gitlab-ce-946771d0b016ae92b15a60bc3290a33b94191ffe.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/api/admin')
-rw-r--r-- | lib/api/admin/sidekiq.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/api/admin/sidekiq.rb b/lib/api/admin/sidekiq.rb new file mode 100644 index 00000000000..a700bea0fd7 --- /dev/null +++ b/lib/api/admin/sidekiq.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true + +module API + module Admin + class Sidekiq < Grape::API + before { authenticated_as_admin! } + + namespace 'admin' do + namespace 'sidekiq' do + namespace 'queues' do + desc 'Drop jobs matching the given metadata from the Sidekiq queue' + params do + Labkit::Context::KNOWN_KEYS.each do |key| + optional key, type: String, allow_blank: false + end + + at_least_one_of(*Labkit::Context::KNOWN_KEYS) + end + delete ':queue_name' do + result = + Gitlab::SidekiqQueue + .new(params[:queue_name]) + .drop_jobs!(declared_params, timeout: 30) + + present result + rescue Gitlab::SidekiqQueue::NoMetadataError + render_api_error!("Invalid metadata: #{declared_params}", 400) + rescue Gitlab::SidekiqQueue::InvalidQueueError + not_found!(params[:queue_name]) + end + end + end + end + end + end +end |