Start starts the component.
()
| 321 | |
| 322 | // Start starts the component. |
| 323 | func (c *Component) Start() (err error) { |
| 324 | if c.GRPC != nil { |
| 325 | c.logger.Debug("Initializing gRPC server...") |
| 326 | if err = c.setupGRPC(); err != nil { |
| 327 | return err |
| 328 | } |
| 329 | serviceInfo := c.GRPC.Server.GetServiceInfo() |
| 330 | services := make([]string, 0, len(serviceInfo)) |
| 331 | for service := range serviceInfo { |
| 332 | services = append(services, service) |
| 333 | } |
| 334 | sort.Strings(services) |
| 335 | c.logger.WithFields(log.Fields( |
| 336 | "namespace", "grpc", |
| 337 | "services", services, |
| 338 | )).Debug("Exposed services") |
| 339 | } |
| 340 | |
| 341 | c.logger.Debug("Initializing cluster...") |
| 342 | if err := c.initCluster(); err != nil { |
| 343 | return err |
| 344 | } |
| 345 | |
| 346 | c.logger.Debug("Initializing web server...") |
| 347 | for _, sub := range c.webSubsystems { |
| 348 | sub.RegisterRoutes(c.web) |
| 349 | } |
| 350 | c.web.RootRouter().PathPrefix("/").Handler(c.web.Router()) |
| 351 | |
| 352 | c.logger.Debug("Initializing interop server...") |
| 353 | for _, sub := range c.interopSubsystems { |
| 354 | sub.RegisterInterop(c.interop) |
| 355 | } |
| 356 | |
| 357 | if c.GRPC != nil { |
| 358 | c.logger.Debug("Starting gRPC server...") |
| 359 | if err = c.listenGRPC(); err != nil { |
| 360 | c.logger.WithError(err).Error("Could not start gRPC server") |
| 361 | return err |
| 362 | } |
| 363 | c.web.Prefix(ttnpb.HTTPAPIPrefix + "/").Handler(http.StripPrefix(ttnpb.HTTPAPIPrefix, c.GRPC)) |
| 364 | c.logger.Debug("Started gRPC server") |
| 365 | } |
| 366 | |
| 367 | c.logger.Debug("Starting web server...") |
| 368 | if err = c.listenWeb(); err != nil { |
| 369 | c.logger.WithError(err).Error("Could not start web server") |
| 370 | return err |
| 371 | } |
| 372 | c.logger.Debug("Started web server") |
| 373 | |
| 374 | c.logger.Debug("Starting interop server") |
| 375 | if err = c.listenInterop(); err != nil { |
| 376 | c.logger.WithError(err).Error("Could not start interop server") |
| 377 | return err |
| 378 | } |
| 379 | c.logger.Debug("Started interop server") |
| 380 |