From e081661f322c2c5086b19871d772bf03522352f6 Mon Sep 17 00:00:00 2001 From: Brabem <69128477+luhaoling@users.noreply.github.com> Date: Mon, 22 Jan 2024 18:07:51 +0800 Subject: [PATCH] fix: wrap the errors (#387) * fix: fix the err format * fix: change the error format * fix: wrap the errors * fix: wrap the flagParse error * fix: fix the InitFromConfig error format --- cmd/api/admin-api/main.go | 5 +++-- cmd/api/chat-api/main.go | 5 +++-- cmd/rpc/admin-rpc/main.go | 2 +- cmd/rpc/chat-rpc/main.go | 2 +- internal/rpc/admin/admin.go | 8 ++++---- internal/rpc/chat/chat.go | 14 ++++++-------- pkg/common/chatrpcstart/start.go | 2 +- pkg/common/config/parse.go | 7 +------ pkg/email/mail.go | 4 ++-- pkg/email/mail_test.go | 5 +---- 10 files changed, 23 insertions(+), 31 deletions(-) diff --git a/cmd/api/admin-api/main.go b/cmd/api/admin-api/main.go index fe33e758a..9fa3c8e7e 100644 --- a/cmd/api/admin-api/main.go +++ b/cmd/api/admin-api/main.go @@ -16,6 +16,7 @@ package main import ( "fmt" + "github.com/OpenIMSDK/tools/errs" "math/rand" "net" "strconv" @@ -66,7 +67,7 @@ func main() { panic(err) } if err := log.InitFromConfig("chat.log", "admin-api", *config.Config.Log.RemainLogLevel, *config.Config.Log.IsStdout, *config.Config.Log.IsJson, *config.Config.Log.StorageLocation, *config.Config.Log.RemainRotationCount, *config.Config.Log.RotationTime); err != nil { - panic(err) + panic(fmt.Errorf("InitFromConfig failed:%w", err)) } if config.Config.Envs.Discovery == "k8s" { ginPort = 80 @@ -80,7 +81,7 @@ func main() { } if err := zk.CreateRpcRootNodes([]string{config.Config.RpcRegisterName.OpenImAdminName, config.Config.RpcRegisterName.OpenImChatName}); err != nil { - panic(err) + panic(errs.Wrap(err, "CreateRpcRootNodes error")) } zk.AddOption(mw.GrpcClient(), grpc.WithTransportCredentials(insecure.NewCredentials())) // 默认RPC中间件 engine := gin.Default() diff --git a/cmd/api/chat-api/main.go b/cmd/api/chat-api/main.go index 33555520e..14ad1ff11 100644 --- a/cmd/api/chat-api/main.go +++ b/cmd/api/chat-api/main.go @@ -17,6 +17,7 @@ package main import ( "flag" "fmt" + "github.com/OpenIMSDK/tools/errs" "math/rand" "net" "strconv" @@ -77,7 +78,7 @@ func main() { panic(err) } if err := log.InitFromConfig("chat.log", "chat-api", *config.Config.Log.RemainLogLevel, *config.Config.Log.IsStdout, *config.Config.Log.IsJson, *config.Config.Log.StorageLocation, *config.Config.Log.RemainRotationCount, *config.Config.Log.RotationTime); err != nil { - panic(err) + panic(fmt.Errorf("InitFromConfig failed:%w", err)) } if config.Config.Envs.Discovery == "k8s" { ginPort = 80 @@ -91,7 +92,7 @@ func main() { panic(err) } if err := zk.CreateRpcRootNodes([]string{config.Config.RpcRegisterName.OpenImAdminName, config.Config.RpcRegisterName.OpenImChatName}); err != nil { - panic(err) + panic(errs.Wrap(err, "CreateRpcRootNodes error")) } zk.AddOption(mw.GrpcClient(), grpc.WithTransportCredentials(insecure.NewCredentials())) // 默认RPC中间件 engine := gin.Default() diff --git a/cmd/rpc/admin-rpc/main.go b/cmd/rpc/admin-rpc/main.go index 6266debd3..ac1100002 100644 --- a/cmd/rpc/admin-rpc/main.go +++ b/cmd/rpc/admin-rpc/main.go @@ -62,7 +62,7 @@ func main() { rpcPort = 80 } if err := log.InitFromConfig("chat.log", "admin-rpc", *config.Config.Log.RemainLogLevel, *config.Config.Log.IsStdout, *config.Config.Log.IsJson, *config.Config.Log.StorageLocation, *config.Config.Log.RemainRotationCount, *config.Config.Log.RotationTime); err != nil { - panic(err) + panic(fmt.Errorf("InitFromConfig failed:%w", err)) } err = chatrpcstart.Start(rpcPort, config.Config.RpcRegisterName.OpenImAdminName, 0, admin.Start) if err != nil { diff --git a/cmd/rpc/chat-rpc/main.go b/cmd/rpc/chat-rpc/main.go index 7f7b9de2e..b6961db9a 100644 --- a/cmd/rpc/chat-rpc/main.go +++ b/cmd/rpc/chat-rpc/main.go @@ -58,7 +58,7 @@ func main() { panic(err) } if err := log.InitFromConfig("chat.log", "chat-rpc", *config.Config.Log.RemainLogLevel, *config.Config.Log.IsStdout, *config.Config.Log.IsJson, *config.Config.Log.StorageLocation, *config.Config.Log.RemainRotationCount, *config.Config.Log.RotationTime); err != nil { - panic(err) + panic(fmt.Errorf("InitFromConfig failed:%w", err)) } err = chatrpcstart.Start(rpcPort, config.Config.RpcRegisterName.OpenImChatName, 0, chat.Start) if err != nil { diff --git a/internal/rpc/admin/admin.go b/internal/rpc/admin/admin.go index d16f28f85..da0b415c0 100644 --- a/internal/rpc/admin/admin.go +++ b/internal/rpc/admin/admin.go @@ -42,7 +42,7 @@ import ( func Start(discov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error { db, err := dbconn.NewGormDB() if err != nil { - return err + return errs.Wrap(err) } tables := []any{ admin2.Admin{}, @@ -56,17 +56,17 @@ func Start(discov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e admin2.ClientConfig{}, } if err := db.AutoMigrate(tables...); err != nil { - return err + return errs.Wrap(err) } rdb, err := cache.NewRedis() if err != nil { - return err + return errs.Wrap(err) } if err := database.NewAdminDatabase(db, rdb).InitAdmin(context.Background()); err != nil { return err } if err := discov.CreateRpcRootNodes([]string{config.Config.RpcRegisterName.OpenImAdminName, config.Config.RpcRegisterName.OpenImChatName}); err != nil { - panic(err) + panic(errs.Wrap(err, "CreateRpcRootNodes error")) } admin.RegisterAdminServer(server, &adminServer{Database: database.NewAdminDatabase(db, rdb), diff --git a/internal/rpc/chat/chat.go b/internal/rpc/chat/chat.go index f2f20864d..d5e3099d1 100644 --- a/internal/rpc/chat/chat.go +++ b/internal/rpc/chat/chat.go @@ -17,6 +17,7 @@ package chat import ( "github.com/OpenIMSDK/chat/pkg/common/apicall" "github.com/OpenIMSDK/tools/discoveryregistry" + "github.com/OpenIMSDK/tools/errs" "google.golang.org/grpc" "github.com/OpenIMSDK/chat/pkg/common/config" @@ -32,7 +33,7 @@ import ( func Start(discov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error { db, err := dbconn.NewGormDB() if err != nil { - return err + return errs.Wrap(err) } tables := []any{ chat2.Account{}, @@ -43,18 +44,15 @@ func Start(discov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e chat2.Log{}, } if err := db.AutoMigrate(tables...); err != nil { - return err + return errs.Wrap(err) } s, err := sms.New() if err != nil { - return err - } - email, err := email.NewMail() - if err != nil { - return err + return errs.Wrap(err) } + email := email.NewMail() if err := discov.CreateRpcRootNodes([]string{config.Config.RpcRegisterName.OpenImAdminName, config.Config.RpcRegisterName.OpenImChatName}); err != nil { - panic(err) + panic(errs.Wrap(err, "CreateRpcRootNodes error")) } chat.RegisterChatServer(server, &chatSvr{ Database: database.NewChatDatabase(db), diff --git a/pkg/common/chatrpcstart/start.go b/pkg/common/chatrpcstart/start.go index 7c93cd0c8..5b1fc4258 100644 --- a/pkg/common/chatrpcstart/start.go +++ b/pkg/common/chatrpcstart/start.go @@ -53,7 +53,7 @@ func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(c defer srv.GracefulStop() err = rpcFn(zkClient, srv) if err != nil { - return errs.Wrap(err) + return err } err = zkClient.Register(rpcRegisterName, registerIP, rpcPort, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { diff --git a/pkg/common/config/parse.go b/pkg/common/config/parse.go index aa7122b57..fa62121d3 100644 --- a/pkg/common/config/parse.go +++ b/pkg/common/config/parse.go @@ -80,9 +80,6 @@ func InitConfig(configFile string) error { if err := yaml.NewDecoder(bytes.NewReader(data)).Decode(&Config); err != nil { return fmt.Errorf("parse loacl openIMConfig file error: %w", err) } - if err != nil { - return utils.Wrap(err, configFile) - } if err := configGetEnv(); err != nil { return fmt.Errorf("get env error:%w", err) @@ -180,7 +177,6 @@ func findConfigPath(configFile string) (string, error) { if _, err := findConfigFile([]string{configFile}); err != nil { return "", errs.Wrap(errors.New("the configFile argument path is error")) } - fmt.Println("configfile:", configFile) return configFile, nil } @@ -197,7 +193,7 @@ func findConfigPath(configFile string) (string, error) { p1, err := os.Executable() if err != nil { - return "", err + return "", errs.Wrap(err) } path = CreateCatalogPath(p1) @@ -277,7 +273,6 @@ func getArrEnv(key1, key2 string, fallback []string) { return } arr[0] = str - fmt.Println("zookeeper Envirement valiable", "str", str) Config.Zookeeper.ZkAddr = arr } diff --git a/pkg/email/mail.go b/pkg/email/mail.go index 243bbe94c..9c15296e3 100644 --- a/pkg/email/mail.go +++ b/pkg/email/mail.go @@ -22,14 +22,14 @@ import ( "gopkg.in/gomail.v2" ) -func NewMail() (Mail, error) { +func NewMail() Mail { dail := gomail.NewDialer( config.Config.VerifyCode.Mail.SmtpAddr, config.Config.VerifyCode.Mail.SmtpPort, config.Config.VerifyCode.Mail.SenderMail, config.Config.VerifyCode.Mail.SenderAuthorizationCode) - return &mail{dail: dail}, nil + return &mail{dail: dail} } type Mail interface { diff --git a/pkg/email/mail_test.go b/pkg/email/mail_test.go index 67f7f1fc0..a19750ea7 100644 --- a/pkg/email/mail_test.go +++ b/pkg/email/mail_test.go @@ -49,10 +49,7 @@ func TestEmail(T *testing.T) { want: errors.New("dial tcp :0: connectex: The requested address is not valid in its context."), }, } - mail, err := NewMail() - if err != nil { - T.Errorf("Init mail failed,%v", err) - } + mail := NewMail() for _, tt := range tests { T.Run(tt.name, func(t *testing.T) {