From a1fed34ac1330aad35095ed38fc0187d1dbcadc9 Mon Sep 17 00:00:00 2001 From: yxxhero <11087727+yxxhero@users.noreply.github.com> Date: Tue, 15 Jun 2021 01:07:52 -0500 Subject: [PATCH] return error in NewManagerServer func (#335) Signed-off-by: yxxhero --- manager/apis/v2/main.go | 10 ++++++- manager/server/server.go | 35 ++++++++++++------------ manager/server/service/manager_server.go | 16 +++++------ 3 files changed, 35 insertions(+), 26 deletions(-) diff --git a/manager/apis/v2/main.go b/manager/apis/v2/main.go index 1ad32fcf4..2033ace8a 100644 --- a/manager/apis/v2/main.go +++ b/manager/apis/v2/main.go @@ -1,9 +1,12 @@ package main import ( + "os" + "d7y.io/dragonfly/v2/manager/apis/v2/handler" "d7y.io/dragonfly/v2/manager/config" "d7y.io/dragonfly/v2/manager/server/service" + logger "d7y.io/dragonfly/v2/pkg/dflog" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" @@ -27,7 +30,12 @@ import ( // @host localhost:8080 // @BasePath /api/v2 func main() { - server := service.NewManagerServer(config.New()) + server, err := service.NewManagerServer(config.New()) + if err != nil { + logger.Error(err) + os.Exit(1) + } + router := gin.New() handler := handler.NewHandler(server) diff --git a/manager/server/server.go b/manager/server/server.go index e2f3d1bde..d552a8075 100644 --- a/manager/server/server.go +++ b/manager/server/server.go @@ -18,6 +18,7 @@ package server import ( "context" + "fmt" "net/http" "os" "os/signal" @@ -31,7 +32,6 @@ import ( // manager server rpc _ "d7y.io/dragonfly/v2/pkg/rpc/manager/server" - "github.com/pkg/errors" ) type Server struct { @@ -42,24 +42,25 @@ type Server struct { } func New(cfg *config.Config) (*Server, error) { - if ms := service.NewManagerServer(cfg); ms != nil { - router, err := InitRouter(ms) - if err != nil { - return nil, err - } - - return &Server{ - cfg: cfg, - ms: ms, - httpServer: &http.Server{ - Addr: ":8080", - Handler: router, - }, - stop: make(chan struct{}), - }, nil + ms, err := service.NewManagerServer(cfg) + if err != nil { + return nil, fmt.Errorf("Failed to create manager server: %s", err) + } + router, err := InitRouter(ms) + if err != nil { + return nil, err } - return nil, errors.New("failed to create manager server") + return &Server{ + cfg: cfg, + ms: ms, + httpServer: &http.Server{ + Addr: ":8080", + Handler: router, + }, + stop: make(chan struct{}), + }, nil + } func (s *Server) Serve() error { diff --git a/manager/server/service/manager_server.go b/manager/server/service/manager_server.go index 7b1e5a926..32fab60e6 100644 --- a/manager/server/service/manager_server.go +++ b/manager/server/service/manager_server.go @@ -28,7 +28,7 @@ type ManagerServer struct { redisClient *dc.RedisClient } -func NewManagerServer(cfg *config.Config) *ManagerServer { +func NewManagerServer(cfg *config.Config) (*ManagerServer, error) { var err error mgr := &ManagerServer{} defer func() { @@ -38,37 +38,37 @@ func NewManagerServer(cfg *config.Config) *ManagerServer { }() if err = cfg.Valid(); err != nil { - return nil + return mgr, err } mgr.identifier = hostidentifier.NewIdentifier() mgr.store, err = client.NewStore(cfg) if err != nil { - return nil + return mgr, err } mgr.lessor, err = lease.NewLessor(mgr.store) if err != nil { - return nil + return mgr, err } mgr.redisClient, err = dc.NewRedisClient(cfg.Redis) if err != nil { - return nil + return mgr, err } mgr.configSvc, err = configsvc.NewConfigSvc(mgr.store, mgr.identifier, mgr.lessor, mgr.redisClient) if err != nil { - return nil + return mgr, err } mgr.hostManager, err = host.NewManager(cfg.HostService) if err != nil { - return nil + return mgr, err } - return mgr + return mgr, nil } func (ms *ManagerServer) Close() error {