51 lines
1.6 KiB
Ruby
51 lines
1.6 KiB
Ruby
|
module API
|
||
|
class CircuitBreakers < Grape::API
|
||
|
before { authenticated_as_admin! }
|
||
|
|
||
|
resource :circuit_breakers do
|
||
|
params do
|
||
|
requires :type,
|
||
|
type: String,
|
||
|
desc: "The type of circuitbreaker",
|
||
|
values: ['repository_storage']
|
||
|
end
|
||
|
resource ':type' do
|
||
|
namespace '', requirements: { type: 'repository_storage' } do
|
||
|
helpers do
|
||
|
def failing_storage_health
|
||
|
@failing_storage_health ||= Gitlab::Git::Storage::Health.for_failing_storages
|
||
|
end
|
||
|
|
||
|
def storage_health
|
||
|
@failing_storage_health ||= Gitlab::Git::Storage::Health.for_all_storages
|
||
|
end
|
||
|
end
|
||
|
|
||
|
desc 'Get all failing git storages' do
|
||
|
detail 'This feature was introduced in GitLab 9.5'
|
||
|
success Entities::RepositoryStorageHealth
|
||
|
end
|
||
|
get do
|
||
|
present storage_health, with: Entities::RepositoryStorageHealth
|
||
|
end
|
||
|
|
||
|
desc 'Get all failing git storages' do
|
||
|
detail 'This feature was introduced in GitLab 9.5'
|
||
|
success Entities::RepositoryStorageHealth
|
||
|
end
|
||
|
get 'failing' do
|
||
|
present failing_storage_health, with: Entities::RepositoryStorageHealth
|
||
|
end
|
||
|
|
||
|
desc 'Reset all storage failures and open circuitbreaker' do
|
||
|
detail 'This feature was introduced in GitLab 9.5'
|
||
|
end
|
||
|
delete do
|
||
|
Gitlab::Git::Storage::CircuitBreaker.reset_all!
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|