Class: Pinot::GrpcTransport

Inherits:
Object
  • Object
show all
Defined in:
lib/pinot/grpc_transport.rb

Instance Method Summary collapse

Constructor Details

#initialize(grpc_config) ⇒ GrpcTransport

Returns a new instance of GrpcTransport.



13
14
15
# File 'lib/pinot/grpc_transport.rb', line 13

def initialize(grpc_config)
  @config = grpc_config
end

Instance Method Details

#execute(broker_address, request) ⇒ Object

Returns Pinot::BrokerResponse



18
19
20
21
22
23
24
25
26
27
# File 'lib/pinot/grpc_transport.rb', line 18

def execute(broker_address, request)
  stub = build_stub(broker_address)
  grpc_request = build_request(request)
  call_opts = build_call_opts

  grpc_response = stub.submit(grpc_request, **call_opts)
  BrokerResponse.from_json(grpc_response.payload)
rescue GRPC::BadStatus => e
  raise TransportError, "gRPC error #{e.code}: #{e.details}"
end