Class: Puma::App::Status
- Inherits:
-
Object
- Object
- Puma::App::Status
- Defined in:
- lib/puma/app/status.rb
Constant Summary collapse
- OK_STATUS =
'{ "status": "ok" }'.freeze
Instance Attribute Summary collapse
-
#auth_token ⇒ Object
Returns the value of attribute auth_token.
Instance Method Summary collapse
- #authenticate(env) ⇒ Object
- #call(env) ⇒ Object
-
#initialize(server, cli) ⇒ Status
constructor
A new instance of Status.
Constructor Details
#initialize(server, cli) ⇒ Status
Returns a new instance of Status.
4 5 6 7 8 |
# File 'lib/puma/app/status.rb', line 4 def initialize(server, cli) @server = server @cli = cli @auth_token = nil end |
Instance Attribute Details
#auth_token ⇒ Object
Returns the value of attribute auth_token.
11 12 13 |
# File 'lib/puma/app/status.rb', line 11 def auth_token @auth_token end |
Instance Method Details
#authenticate(env) ⇒ Object
13 14 15 16 |
# File 'lib/puma/app/status.rb', line 13 def authenticate(env) return true unless @auth_token env['QUERY_STRING'].to_s.split(/&;/).include?("token=#{@auth_token}") end |
#call(env) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/puma/app/status.rb', line 18 def call(env) unless authenticate(env) return rack_response(403, 'Invalid auth token', 'text/plain') end case env['PATH_INFO'] when /\/stop$/ @server.stop return rack_response(200, OK_STATUS) when /\/halt$/ @server.halt return rack_response(200, OK_STATUS) when /\/restart$/ if @cli and @cli.restart_on_stop! @server.begin_restart return rack_response(200, OK_STATUS) else return rack_response(200, '{ "status": "not configured" }') end when /\/stats$/ b = @server.backlog r = @server.running return rack_response(200, %Q!{ "backlog": #{b}, "running": #{r} }!) end rack_response 404, "Unsupported action", 'text/plain' end |