MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / Start

Method Start

pkg/component/component.go:323–393  ·  view source on GitHub ↗

Start starts the component.

()

Source from the content-addressed store, hash-verified

321
322// Start starts the component.
323func (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

Callers 11

TestPbaFunction · 0.95
RunMethod · 0.95
TestPeersFunction · 0.95
StartFromContextFunction · 0.45
TestTaskBackoffResetFunction · 0.45
TestHTTPFunction · 0.45
TestGRPCFunction · 0.45
TestHooksFunction · 0.45
TestTasksFunction · 0.45
TestInteropTLSFunction · 0.45
StartComponentFunction · 0.45

Implementers 1

Componentpkg/component/component.go

Calls 15

setupGRPCMethod · 0.95
initClusterMethod · 0.95
listenGRPCMethod · 0.95
listenWebMethod · 0.95
listenInteropMethod · 0.95
startTasksMethod · 0.95
FieldsFunction · 0.92
HandlerMethod · 0.80
RootRouterMethod · 0.80
RouterMethod · 0.80
PrefixMethod · 0.80
DebugMethod · 0.65

Tested by 8

TestPbaFunction · 0.76
TestPeersFunction · 0.76
TestTaskBackoffResetFunction · 0.36
TestHTTPFunction · 0.36
TestGRPCFunction · 0.36
TestHooksFunction · 0.36
TestTasksFunction · 0.36
TestInteropTLSFunction · 0.36