Class: Igniter::Store::HTTPAdapter::ReadyHandler

Inherits:
Object
  • Object
show all
Includes:
ResponseHelper
Defined in:
lib/igniter/store/http_adapter.rb

Overview

Readiness probe: 200 when ready to serve traffic, 503 otherwise (draining, stopped, or initialising). ready_provider must return truthy/falsy.

Instance Method Summary collapse

Constructor Details

#initialize(ready_provider: nil) ⇒ ReadyHandler

Returns a new instance of ReadyHandler.



108
109
110
# File 'lib/igniter/store/http_adapter.rb', line 108

def initialize(ready_provider: nil)
  @ready_provider = ready_provider
end

Instance Method Details

#call(env) ⇒ Object



112
113
114
115
116
117
118
119
120
121
# File 'lib/igniter/store/http_adapter.rb', line 112

def call(env)
  return method_not_allowed unless env["REQUEST_METHOD"] == "GET"

  ready = @ready_provider ? @ready_provider.call : true
  if ready
    json_response(200, { status: "ready" })
  else
    json_response(503, { status: "unavailable" })
  end
end