Class: RedfishTools::Servlet
- Inherits:
-
WEBrick::HTTPServlet::AbstractServlet
- Object
- WEBrick::HTTPServlet::AbstractServlet
- RedfishTools::Servlet
- Extended by:
- Forwardable
- Defined in:
- lib/redfish_tools/servlet.rb
Constant Summary collapse
- BAD_HEADERS =
Set.new(["connection", "content-length", "keep-alive"])
- DEFAULT_HEADERS =
{ "content-type" => "application/json" }.freeze
- TRANSITIONS =
{ "On" => { "GracefullShutdown" => "Off", "ForceOff" => "Off", "PushPowerButton" => "Off", "Nmi" => "Off", "GracefullRestart" => "On", "ForceRestart" => "On", "PowerCycle" => "On", }.freeze, "Off" => { "On" => "On", "ForceOn" => "On", "PushPowerButton" => "On", }.freeze, }.freeze
Instance Method Summary collapse
- #do_DELETE(request, response) ⇒ Object
- #do_GET(request, response) ⇒ Object
- #do_PATCH(_request, response) ⇒ Object
- #do_POST(request, response) ⇒ Object
- #do_PUT(_request, response) ⇒ Object
- #service(request, response) ⇒ Object
Instance Method Details
#do_DELETE(request, response) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/redfish_tools/servlet.rb', line 85 def do_DELETE(request, response) item = datastore.get(request.path) return response.status = 404 unless item.body delete_item(item) response.status = 204 end |
#do_GET(request, response) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/redfish_tools/servlet.rb', line 44 def do_GET(request, response) return response.status = 404 unless datastore.get(request.path).body item = datastore.get(request.path) response.status = 200 set_headers(response, item.headers) response.body = item.body.to_json end |
#do_PATCH(_request, response) ⇒ Object
81 82 83 |
# File 'lib/redfish_tools/servlet.rb', line 81 def do_PATCH(_request, response) response.status = 501 end |
#do_POST(request, response) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/redfish_tools/servlet.rb', line 53 def do_POST(request, response) action = system_actions[request.path] item = datastore.get(request.path) return response.status = 404 unless action || item.body return response.status = 405 if action.nil? && item.body["Members"].nil? data = JSON.parse(request.body) if action body, headers, status = execute_action(action, data) elsif login_path?(request.path) body, headers, status = login(item, data) else body, headers, status = new_item(item, data) end response.status = status set_headers(response, headers) response.body = body.to_json rescue JSON::ParserError response.status = 400 set_headers(response) response.body = error_body("Invalid JSON").to_json end |
#do_PUT(_request, response) ⇒ Object
77 78 79 |
# File 'lib/redfish_tools/servlet.rb', line 77 def do_PUT(_request, response) response.status = 501 end |
#service(request, response) ⇒ Object
38 39 40 41 42 |
# File 'lib/redfish_tools/servlet.rb', line 38 def service(request, response) return response.status = 401 unless (request) super end |