2018-11-09 13:39:43 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-01-21 18:34:09 -05:00
|
|
|
module Gitlab
|
|
|
|
module GitalyClient
|
|
|
|
class HealthCheckService
|
|
|
|
def initialize(storage)
|
|
|
|
@storage = storage
|
|
|
|
end
|
|
|
|
|
|
|
|
# Sends a gRPC health ping to the Gitaly server for the storage shard.
|
|
|
|
def check
|
|
|
|
request = Grpc::Health::V1::HealthCheckRequest.new
|
|
|
|
response = GitalyClient.call(@storage, :health_check, :check, request, timeout: GitalyClient.fast_timeout)
|
|
|
|
|
|
|
|
{ success: response&.status == :SERVING }
|
|
|
|
rescue GRPC::BadStatus => e
|
|
|
|
{ success: false, message: e.to_s }
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|