From 971d8ec2a064b24c870c65404ac5c1e5b3b60937 Mon Sep 17 00:00:00 2001 From: "Xinwei Xiong (cubxxw)" <3293172751nss@gmail.com> Date: Fri, 1 Mar 2024 02:17:32 +0800 Subject: [PATCH] feat: add openim auto format code --- pkg/common/cmd/cron_task.go | 4 ++++ pkg/common/cmd/msg_gateway.go | 39 ++++++++++++++++++++++++++++++++++ pkg/common/cmd/msg_transfer.go | 7 +++++- pkg/common/cmd/root.go | 19 ++++++++--------- pkg/common/cmd/rpc.go | 23 +++++++++++--------- 5 files changed, 71 insertions(+), 21 deletions(-) diff --git a/pkg/common/cmd/cron_task.go b/pkg/common/cmd/cron_task.go index 1b0e796ac..fa7a46351 100644 --- a/pkg/common/cmd/cron_task.go +++ b/pkg/common/cmd/cron_task.go @@ -36,3 +36,7 @@ func (c *CronTaskCmd) Exec(f func() error) error { c.addRunE(f) return c.Execute() } + +func (c *CronTaskCmd) GetPortFromConfig(portType string) (int, error) { + return 0, nil +} diff --git a/pkg/common/cmd/msg_gateway.go b/pkg/common/cmd/msg_gateway.go index 3c179f62c..e37eee9a2 100644 --- a/pkg/common/cmd/msg_gateway.go +++ b/pkg/common/cmd/msg_gateway.go @@ -15,11 +15,14 @@ package cmd import ( + "errors" + "github.com/openimsdk/open-im-server/v3/internal/msggateway" "github.com/spf13/cobra" "github.com/OpenIMSDK/protocol/constant" "github.com/OpenIMSDK/tools/errs" + v3config "github.com/openimsdk/open-im-server/v3/pkg/common/config" ) type MsgGatewayCmd struct { @@ -64,3 +67,39 @@ func (m *MsgGatewayCmd) addRunE() { return msggateway.RunWsAndServer(port, wsPort, prometheusPort) } } + +func (m *MsgGatewayCmd) Exec() error { + m.addRunE() + return m.Execute() +} + +func (m *MsgGatewayCmd) GetPortFromConfig(portType string) (int, error) { + var port int + var exists bool + + switch portType { + case constant.FlagWsPort: + if len(v3config.Config.LongConnSvr.OpenImWsPort) > 0 { + port = v3config.Config.LongConnSvr.OpenImWsPort[0] + exists = true + } + + case constant.FlagPort: + if len(v3config.Config.LongConnSvr.OpenImMessageGatewayPort) > 0 { + port = v3config.Config.LongConnSvr.OpenImMessageGatewayPort[0] + exists = true + } + + case constant.FlagPrometheusPort: + if len(v3config.Config.Prometheus.MessageGatewayPrometheusPort) > 0 { + port = v3config.Config.Prometheus.MessageGatewayPrometheusPort[0] + exists = true + } + } + + if !exists { + return 0, errs.Wrap(errors.New("port type '%s' not found in configuration"), portType) + } + + return port, nil +} diff --git a/pkg/common/cmd/msg_transfer.go b/pkg/common/cmd/msg_transfer.go index a96550e2a..891c8745d 100644 --- a/pkg/common/cmd/msg_transfer.go +++ b/pkg/common/cmd/msg_transfer.go @@ -22,6 +22,7 @@ import ( config2 "github.com/openimsdk/open-im-server/v3/pkg/common/config" + "github.com/OpenIMSDK/tools/errs" "github.com/openimsdk/open-im-server/v3/internal/msgtransfer" ) @@ -37,7 +38,11 @@ func NewMsgTransferCmd() *MsgTransferCmd { func (m *MsgTransferCmd) addRunE() { m.Command.RunE = func(cmd *cobra.Command, args []string) error { - return msgtransfer.StartTransfer(m.getPrometheusPortFlag(cmd)) + prometheusPort, err := m.getPrometheusPortFlag(cmd) + if err != nil { + return errs.Wrap(err, "failed to get Prometheus port") + } + return msgtransfer.StartTransfer(prometheusPort) } } diff --git a/pkg/common/cmd/root.go b/pkg/common/cmd/root.go index 726aed05e..f6c56b595 100644 --- a/pkg/common/cmd/root.go +++ b/pkg/common/cmd/root.go @@ -151,22 +151,21 @@ func (r *RootCmd) getPortFlag(cmd *cobra.Command) (int, error) { } // // GetPortFlag returns the port flag -// func (r *RootCmd) GetPortFlag() (int, error) { - -// if portFlag == 0 { -// return errs.Wrap(errs.New("port is 0"), "error getting port flag") -// } -// return r.port, nil -// } +func (r *RootCmd) GetPortFlag() (int, error) { + return r.port, nil +} func (r *RootCmd) AddPrometheusPortFlag() { r.Command.Flags().IntP(constant.FlagPrometheusPort, "", 0, "server prometheus listen port") } func (r *RootCmd) getPrometheusPortFlag(cmd *cobra.Command) (int, error) { - port, _ := cmd.Flags().GetInt(constant.FlagPrometheusPort) - if port == 0 { - port, _ = r.PortFromConfig(constant.FlagPrometheusPort) + port, err := cmd.Flags().GetInt(constant.FlagPrometheusPort) + if err != nil || port == 0 { + port, err = r.PortFromConfig(constant.FlagPrometheusPort) + if err != nil { + return 0, errs.Wrap(err, "error getting prometheus port from config") + } } return port, nil } diff --git a/pkg/common/cmd/rpc.go b/pkg/common/cmd/rpc.go index fe77df344..303cefe3c 100644 --- a/pkg/common/cmd/rpc.go +++ b/pkg/common/cmd/rpc.go @@ -15,6 +15,7 @@ package cmd import ( + "errors" "fmt" "github.com/OpenIMSDK/protocol/constant" @@ -35,24 +36,26 @@ type RpcCmd struct { } func NewRpcCmd(name string) *RpcCmd { - ret := &RpcCmd{NewRootCmd(name)} - ret.SetRootCmdPt(ret) - return ret + ret := &RpcCmd{NewRootCmd(name)} + ret.SetRootCmdPt(ret) + return ret } func (a *RpcCmd) Exec() error { - a.Command.Run = func(cmd *cobra.Command, args []string) { + a.Command.RunE = func(cmd *cobra.Command, args []string) error { portFlag, err := a.getPortFlag(cmd) if err != nil { - a.port = portFlag + return errs.Wrap(err, "error getting port flag") } - var prometheusPort, err = a.getPrometheusPortFlag(cmd) + a.port = portFlag + prometheusPort, err := a.getPrometheusPortFlag(cmd) if err != nil { - return err + return errs.Wrap(err, "error getting prometheus port flag") } - a.prometheusPort = prometheusPort + + return nil } return a.Execute() } @@ -60,7 +63,7 @@ func (a *RpcCmd) Exec() error { func (a *RpcCmd) StartSvr(name string, rpcFn func(discov discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { portFlag, err := a.GetPortFlag() if err != nil { - return errs.Wrap(err, "error getting port flag") + return err } else { a.port = portFlag } @@ -108,7 +111,7 @@ func (a *RpcCmd) GetPortFromConfig(portType string) (int, error) { if port, ok := portMap[portType]; ok { return port, nil } else { - return 0, errs.Wrap(errs.New("port type '%s' not found", portType), fmt.Sprintf("Failed to get port for %s", a.Name)) + return 0, errs.Wrap(errors.New("port type not found"), fmt.Sprintf("Failed to get port for %s", a.Name)) } }