module Cuniculus::Plugins::HealthCheck::SupervisorMethods

Public Class Methods

new(config) click to toggle source
Calls superclass method
   # File lib/cuniculus/plugins/health_check.rb
66 def initialize(config)
67   super(config)
68   hc_plugin_opts = config.opts[OPTS_KEY]
69   @hc_server = Rack::Handler.get(hc_plugin_opts["server"])
70   @hc_rack_app = build_rack_app(hc_plugin_opts)
71 end

Public Instance Methods

start() click to toggle source
Calls superclass method
   # File lib/cuniculus/plugins/health_check.rb
73 def start
74   start_health_check_server
75   super
76 end
stop() click to toggle source
Calls superclass method
   # File lib/cuniculus/plugins/health_check.rb
78 def stop
79   @hc_server.shutdown
80   super
81 end

Private Instance Methods

build_rack_app(opts) click to toggle source
   # File lib/cuniculus/plugins/health_check.rb
86 def build_rack_app(opts)
87   app = ::Object.new
88   app.define_singleton_method(:call) do |env|
89     if Rack::Request.new(env).path == "/#{opts['path']}"
90       [200, {}, ["OK"]]
91     else
92       [404, {}, ["Not Found"]]
93     end
94   end
95   app
96 end
start_health_check_server() click to toggle source
    # File lib/cuniculus/plugins/health_check.rb
 98 def start_health_check_server
 99   opts = config.opts[OPTS_KEY]
100   Thread.new do
101     access_log = opts["quiet"] ? [] : nil
102     @hc_server.run(@hc_rack_app, AccessLog: access_log, Port: opts["port"], Host: opts["bind_to"])
103   end
104 end