Class: Fluent::Plugin::GcloudPubSubInput::RPCServlet
- Inherits:
-
WEBrick::HTTPServlet::AbstractServlet
- Object
- WEBrick::HTTPServlet::AbstractServlet
- Fluent::Plugin::GcloudPubSubInput::RPCServlet
- Defined in:
- lib/fluent/plugin/in_gcloud_pubsub.rb
Defined Under Namespace
Classes: Error
Instance Method Summary collapse
- #do_GET(req, res) ⇒ Object
-
#initialize(server, plugin) ⇒ RPCServlet
constructor
A new instance of RPCServlet.
- #process(req, res) ⇒ Object
- #render_json(code, obj) ⇒ Object
Constructor Details
#initialize(server, plugin) ⇒ RPCServlet
Returns a new instance of RPCServlet.
64 65 66 67 |
# File 'lib/fluent/plugin/in_gcloud_pubsub.rb', line 64 def initialize(server, plugin) super @plugin = plugin end |
Instance Method Details
#do_GET(req, res) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/fluent/plugin/in_gcloud_pubsub.rb', line 69 def do_GET(req, res) begin code, header, body = process(req, res) rescue code, header, body = render_json(500, { 'ok' => false, 'message' => 'Internal Server Error', 'error' => "#{$!}", 'backtrace'=> $!.backtrace }) end res.status = code header.each_pair {|k,v| res[k] = v } res.body = body end |
#process(req, res) ⇒ Object
92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/fluent/plugin/in_gcloud_pubsub.rb', line 92 def process(req, res) ret = {'ok' => true} case req.path_info when '/stop' @plugin.stop_pull when '/start' @plugin.start_pull when '/status' ret['status'] = @plugin.status_of_pull else raise Error.new "Invalid path_info: #{req.path_info}" end render_json(200, ret) end |
#render_json(code, obj) ⇒ Object
88 89 90 |
# File 'lib/fluent/plugin/in_gcloud_pubsub.rb', line 88 def render_json(code, obj) [code, {'Content-Type' => 'application/json'}, obj.to_json] end |