()
| 47 | } |
| 48 | |
| 49 | func (c *Component) setupGRPC() (err error) { |
| 50 | for _, sub := range c.grpcSubsystems { |
| 51 | sub.RegisterServices(c.GRPC.Server) |
| 52 | } |
| 53 | metrics.InitializeServerMetrics(c.GRPC.Server) |
| 54 | c.logger.Debug("Starting loopback connection") |
| 55 | c.loopback, err = rpcserver.StartLoopback( |
| 56 | c.ctx, c.GRPC.Server, |
| 57 | rpcclient.DefaultDialOptions( |
| 58 | // Suppress loopback client logs, because we already have server logs. |
| 59 | log.NewContext(c.ctx, log.Noop), |
| 60 | )..., |
| 61 | ) |
| 62 | if err != nil { |
| 63 | return errors.New("could not start loopback connection").WithCause(err) |
| 64 | } |
| 65 | c.logger.Debug("Setting up gRPC gateway") |
| 66 | for _, sub := range c.grpcSubsystems { |
| 67 | sub.RegisterHandlers(c.GRPC.ServeMux, c.loopback) |
| 68 | } |
| 69 | return nil |
| 70 | } |
| 71 | |
| 72 | // LoopbackConn returns the loopback gRPC connection to the component. |
| 73 | // This conn must *not* be closed. |
no test coverage detected