module Fluent::GridDBAuth

Public Instance Methods

create_request(record) click to toggle source

Create new request

# File lib/fluent/plugin/griddb_auth.rb, line 48
def create_request(record)
  url = format_url()
  uri = URI.parse(URI.encode(url))
  req = Net::HTTP::Put.new(uri.request_uri)
      req.basic_auth(@username, @password)
  set_body(req, record)
  return req, uri
end
format_url() click to toggle source

Get URL to API

# File lib/fluent/plugin/griddb_auth.rb, line 80
def format_url()
            if $real_container.nil? || $real_container.empty?
                    @host + "/griddb/v2/" + @cluster + "/dbs/" + @database + "/containers/" + @container + "/rows"
            else
                    @host + "/griddb/v2/" + @cluster + "/dbs/" + @database + "/containers/" + $real_container + "/rows"
            end        
end
send_request(req, uri) click to toggle source

Send request

# File lib/fluent/plugin/griddb_auth.rb, line 58
def send_request(req, uri)
  res = nil
  begin      
    @last_request_time = Time.now.to_f        
    res = Net::HTTP.start(uri.host, uri.port) {|http| http.request(req) }
  
  rescue => e 
    log.warn "Net::HTTP.#{req.method.capitalize} raises exception: #{e.class}, '#{e.message}'"
    raise e if @raise_on_error
  else
     unless res and res.is_a?(Net::HTTPSuccess)
        res_summary = if res
                         "#{res.code} #{res.message} #{res.body}"
                      else
                         "res=nil"
                      end
        log.warn "failed to #{req.method} #{uri} (#{res_summary})"
     end
  end
end
set_body(req, record) click to toggle source

Set type for request body

# File lib/fluent/plugin/griddb_auth.rb, line 42
def set_body(req, record)
   req.body = Yajl.dump(record)
   req['Content-Type'] = 'application/json'
end