debian-mirror-gitlab/lib/api/admin/sidekiq.rb

39 lines
1.1 KiB
Ruby
Raw Normal View History

2020-04-08 14:13:33 +05:30
# frozen_string_literal: true
module API
module Admin
2021-01-03 14:25:43 +05:30
class Sidekiq < ::API::Base
2020-04-08 14:13:33 +05:30
before { authenticated_as_admin! }
2021-01-29 00:20:46 +05:30
feature_category :not_owned
2020-04-08 14:13:33 +05:30
namespace 'admin' do
namespace 'sidekiq' do
namespace 'queues' do
desc 'Drop jobs matching the given metadata from the Sidekiq queue'
params do
2021-11-11 11:23:49 +05:30
Gitlab::SidekiqQueue::ALLOWED_KEYS.each do |key|
2020-04-08 14:13:33 +05:30
optional key, type: String, allow_blank: false
end
2021-11-11 11:23:49 +05:30
at_least_one_of(*Gitlab::SidekiqQueue::ALLOWED_KEYS)
2020-04-08 14:13:33 +05:30
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