summaryrefslogtreecommitdiff
path: root/lib/api/circuit_breakers.rb
diff options
context:
space:
mode:
authorMike Greiling <mike@pixelcog.com>2017-08-07 15:20:09 -0500
committerMike Greiling <mike@pixelcog.com>2017-08-07 15:20:09 -0500
commit7767ceef47a57baf2bc03f609e3dbf77ed44c9aa (patch)
tree0d057168bfba56bff88f2bf1b4e8f19af0aa2204 /lib/api/circuit_breakers.rb
parent1d5a306596e56398c3f6f46feafd1f4ce23c3c2c (diff)
parentb12107a0b953b566cd58db30ae880800a4a695a6 (diff)
downloadgitlab-ce-7767ceef47a57baf2bc03f609e3dbf77ed44c9aa.tar.gz
Merge branch 'master' into ide
* master: (177 commits) Add changelog Bump gitlab-shell version to 5.8.0 to fix Git for Windows 2.14 Make contextual sidebar collapsible Fixed sidebar context header hover colors Use correct `Environment`-class within `Gitlab` namespace Remove gl.Activities from Commits page Move `let` calls inside the `describe` block using them Add `/assign me` alias support for assigning issuables to oneself GRPC::Unavailable (< GRPC::BadStatus) is wrapped in a CommandError Use `broken_storage` in the fs_shards_spec. Eager load project creators for project dashboards Memoize a user's personal projects count Remove redundant query from User#recent_push Improve checking if projects would be returned Change spelling of gitlab-shell Remove unused #tree-holder Add custom linter for inline JavaScript to haml_lint Rename user_can_admin? because it's more accurate Synchronous zanata community contribution translation Add Korean translation to i18n ...
Diffstat (limited to 'lib/api/circuit_breakers.rb')
-rw-r--r--lib/api/circuit_breakers.rb50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/api/circuit_breakers.rb b/lib/api/circuit_breakers.rb
new file mode 100644
index 00000000000..118883f5ea5
--- /dev/null
+++ b/lib/api/circuit_breakers.rb
@@ -0,0 +1,50 @@
+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