Welcome to mirror list, hosted at ThFree Co, Russian Federation.

health_controller.rb « controllers « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 99840e40af16ccce91db538fb9697f52e1cdce84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# frozen_string_literal: true

class HealthController < ActionController::Base
  protect_from_forgery with: :exception, prepend: true
  include RequiresWhitelistedMonitoringClient

  def readiness
    results = checks.flat_map(&:readiness)
    success = results.all?(&:success)

    # disable static error pages at the gitlab-workhorse level, we want to see this error response even in production
    headers["X-GitLab-Custom-Error"] = 1 unless success

    response = results.map { |result| [result.name, result.payload] }.to_h
    render json: response, status: success ? :ok : :service_unavailable
  end

  def liveness
    render json: { status: 'ok' }, status: :ok
  end

  private

  def checks
    ::Gitlab::HealthChecks::CHECKS
  end
end