Class: Puppet::Network::HTTP::Rack
- Defined in:
- lib/puppet/network/http/rack.rb
Overview
An rack application, for running the Puppet HTTP Server.
Instance Method Summary collapse
-
#call(env) ⇒ Object
The real rack application (which needs to respond to call).
Instance Method Details
#call(env) ⇒ Object
The real rack application (which needs to respond to call). The work we need to do, roughly is:
-
Read request (from env) and prepare a response
-
Route the request to the correct handler
-
Return the response (in rack-format) to our caller.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/puppet/network/http/rack.rb', line 15 def call(env) request = Rack::Request.new(env) response = Rack::Response.new Puppet.debug 'Handling request: %s %s' % [request.request_method, request.fullpath] begin Puppet::Network::HTTP::RackREST.new.process(request, response) rescue => detail # Send a Status 500 Error on unhandled exceptions. response.status = 500 response['Content-Type'] = 'text/plain' response.write _('Internal Server Error: "%s"') % detail. # log what happened Puppet.log_exception(detail, _("Puppet Server (Rack): Internal Server Error: Unhandled Exception: \"%s\"") % detail.) end response.finish end |