Add HealthChecker helpers for setting statuses

pull/13153/head
Marko Bogdanović 7 years ago committed by bmarkons
parent 255c590bc6
commit 9f4a8eeced
  1. 14
      src/ruby/pb/grpc/health/checker.rb
  2. 29
      src/ruby/spec/pb/health/checker_spec.rb

@ -48,6 +48,20 @@ module Grpc
@status_mutex.synchronize { @statuses["#{service}"] = status }
end
# Adds given health status for all given services
def set_status_for_services(status, *services)
@status_mutex.synchronize do
services.each { |service| @statuses["#{service}"] = status }
end
end
# Adds health status for each service given within hash
def add_statuses(service_statuses = {})
@status_mutex.synchronize do
service_statuses.each_pair { |service, status| @statuses["#{service}"] = status }
end
end
# Clears the status for the given service.
def clear_status(service)
@status_mutex.synchronize { @statuses.delete("#{service}") }

@ -99,6 +99,35 @@ describe Grpc::Health::Checker do
end
end
context 'method `add_statuses`' do
it 'should add status to each service' do
checker = Grpc::Health::Checker.new
checker.add_statuses(
'service1' => ServingStatus::SERVING,
'service2' => ServingStatus::NOT_SERVING
)
service1_health = checker.check(HCReq.new(service: 'service1'), nil)
service2_health = checker.check(HCReq.new(service: 'service2'), nil)
expect(service1_health).to eq(HCResp.new(status: ServingStatus::SERVING))
expect(service2_health).to eq(HCResp.new(status: ServingStatus::NOT_SERVING))
end
end
context 'method `set_status_for_services`' do
it 'should add given status to all given services' do
checker = Grpc::Health::Checker.new
checker.set_status_for_services(
ServingStatus::SERVING,
'service1',
'service2'
)
service1_health = checker.check(HCReq.new(service: 'service1'), nil)
service2_health = checker.check(HCReq.new(service: 'service2'), nil)
expect(service1_health).to eq(HCResp.new(status: ServingStatus::SERVING))
expect(service2_health).to eq(HCResp.new(status: ServingStatus::SERVING))
end
end
context 'method `check`' do
success_tests.each do |t|
it "should fail with NOT_FOUND when #{t[:desc]}" do

Loading…
Cancel
Save