oceanbase
80 строк · 2.4 Кб
1/**
2* Copyright (c) 2021 OceanBase
3* OceanBase CE is licensed under Mulan PubL v2.
4* You can use this software according to the terms and conditions of the Mulan PubL v2.
5* You may obtain a copy of Mulan PubL v2 at:
6* http://license.coscl.org.cn/MulanPubL-2.0
7* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10* See the Mulan PubL v2 for more details.
11*/
12
13package main14
15import (16"os"17
18"github.com/pkg/errors"19log "github.com/sirupsen/logrus"20"github.com/spf13/cobra"21"github.com/spf13/viper"22
23"github.com/oceanbase/configserver/config"24"github.com/oceanbase/configserver/logger"25"github.com/oceanbase/configserver/server"26)
27
28var (29configserverCommand = &cobra.Command{30Use: "configserver",31Short: "configserver is used to store and query ob rs_list",32Long: "configserver is used to store and query ob rs_list, used by observer, obproxy and other tools",33Run: func(cmd *cobra.Command, args []string) {34err := runConfigServer()35if err != nil {36log.WithField("args:", args).Errorf("start configserver failed: %v", err)37}38},39}40)
41
42func init() {43configserverCommand.PersistentFlags().StringP("config", "c", "etc/config.yaml", "config file")44_ = viper.BindPFlag("config", configserverCommand.PersistentFlags().Lookup("config"))45}
46
47func main() {48if err := configserverCommand.Execute(); err != nil {49log.WithField("args", os.Args).Errorf("configserver execute failed %v", err)50}51}
52
53func runConfigServer() error {54configFilePath := viper.GetString("config")55configServerConfig, err := config.ParseConfigServerConfig(configFilePath)56if err != nil {57return errors.Wrap(err, "read and parse configserver config")58}59
60// init logger61logger.InitLogger(logger.LoggerConfig{62Level: configServerConfig.Log.Level,63Filename: configServerConfig.Log.Filename,64MaxSize: configServerConfig.Log.MaxSize,65MaxAge: configServerConfig.Log.MaxAge,66MaxBackups: configServerConfig.Log.MaxBackups,67LocalTime: configServerConfig.Log.LocalTime,68Compress: configServerConfig.Log.Compress,69})70
71// init config server72configServer := server.NewConfigServer(configServerConfig)73
74err = configServer.Run()75if err != nil {76return errors.Wrap(err, "start config server")77}78
79return nil80}
81