diff --git a/cmd/polad/main.go b/cmd/polad/main.go index 37144a1..db33168 100644 --- a/cmd/polad/main.go +++ b/cmd/polad/main.go @@ -83,7 +83,7 @@ func main() { o.GrpcAddr = c.Global.GrpcServer.Address o.GrpcPort = c.Global.GrpcServer.Port o.TedEnable = c.Global.Ted.Enable - if err := server.NewPce(o, logger, tedElemsChan); err != nil { - logger.Panic("Failed to create New Server", zap.Error(err)) + if serverErr := server.NewPce(o, logger, tedElemsChan); serverErr.Error != nil { + logger.Panic("Failed to create New Server", zap.String("server", serverErr.Server), zap.Error(serverErr.Error)) } } diff --git a/pkg/server/error.go b/pkg/server/error.go new file mode 100644 index 0000000..b670d72 --- /dev/null +++ b/pkg/server/error.go @@ -0,0 +1,11 @@ +// Copyright (c) 2022 NTT Communications Corporation +// +// This software is released under the MIT License. +// see https://github.com/nttcom/pola/blob/main/LICENSE + +package server + +type ServerError struct { + Error error + Server string +} diff --git a/pkg/server/server.go b/pkg/server/server.go index a41268c..390bd98 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -41,7 +41,7 @@ type PceOptions struct { TedEnable bool } -func NewPce(o *PceOptions, logger *zap.Logger, tedElemsChan chan []table.TedElem) error { +func NewPce(o *PceOptions, logger *zap.Logger, tedElemsChan chan []table.TedElem) ServerError { var s *Server if o.TedEnable { s = &Server{ @@ -73,11 +73,14 @@ func NewPce(o *PceOptions, logger *zap.Logger, tedElemsChan chan []table.TedElem s.logger = logger lspChan := make(chan Lsp) - errChan := make(chan error) + errChan := make(chan ServerError) // Start PCEP listen go func() { if err := s.Listen(o.PcepAddr, o.PcepPort, lspChan); err != nil { - errChan <- err + errChan <- ServerError{ + Server: "pcep", + Error: err, + } } }() // Start gRPC listen @@ -85,7 +88,10 @@ func NewPce(o *PceOptions, logger *zap.Logger, tedElemsChan chan []table.TedElem grpcServer := grpc.NewServer() apiServer := NewAPIServer(s, grpcServer) if err := apiServer.Serve(o.GrpcAddr, o.GrpcPort); err != nil { - errChan <- err + errChan <- ServerError{ + Server: "grpc", + Error: err, + } } }() @@ -95,8 +101,8 @@ func NewPce(o *PceOptions, logger *zap.Logger, tedElemsChan chan []table.TedElem // Overwrite LSP s.removeLsp(lsp) s.lspList = append(s.lspList, lsp) - case err := <-errChan: - return err + case serverError := <-errChan: + return serverError } } }