func LoadConf(configFile string) (*Conf, error) { srvConf := &Conf{} conf, err := utils.InitConfigFromFile(configFile) if err != nil { log.Fatal(err) } srvConf.productName, _ = conf.ReadString("product", "test") if len(srvConf.productName) == 0 { log.Fatalf("invalid config: product entry is missing in %s", configFile) } srvConf.zkAddr, _ = conf.ReadString("zk", "") if len(srvConf.zkAddr) == 0 { log.Fatalf("invalid config: need zk entry is missing in %s", configFile) } srvConf.zkAddr = strings.TrimSpace(srvConf.zkAddr) srvConf.proxyId, _ = conf.ReadString("proxy_id", "") if len(srvConf.proxyId) == 0 { log.Fatalf("invalid config: need proxy_id entry is missing in %s", configFile) } srvConf.netTimeout, _ = conf.ReadInt("net_timeout", 5) srvConf.proto, _ = conf.ReadString("proto", "tcp") srvConf.provider, _ = conf.ReadString("coordinator", "zookeeper") log.Infof("%+v", srvConf) return srvConf, nil }
func LoadConf(configFile string) (*Config, error) { c, err := utils.InitConfigFromFile(configFile) if err != nil { log.PanicErrorf(err, "load config '%s' failed", configFile) } conf := &Config{} conf.productName, _ = c.ReadString("product", "test") if len(conf.productName) == 0 { log.Panicf("invalid config: product entry is missing in %s", configFile) } conf.zkAddr, _ = c.ReadString("zk", "") if len(conf.zkAddr) == 0 { log.Panicf("invalid config: need zk entry is missing in %s", configFile) } conf.zkAddr = strings.TrimSpace(conf.zkAddr) conf.proxyId, _ = c.ReadString("proxy_id", "") if len(conf.proxyId) == 0 { log.Panicf("invalid config: need proxy_id entry is missing in %s", configFile) } conf.netTimeout, _ = c.ReadInt("net_timeout", 5) conf.proto, _ = c.ReadString("proto", "tcp") conf.provider, _ = c.ReadString("coordinator", "zookeeper") return conf, nil }
func main() { log.SetLevelByString("info") c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) signal.Notify(c, syscall.SIGTERM) go func() { <-c if createdDashboardNode { releaseDashboardNode() } Fatal("ctrl-c or SIGTERM found, exit") }() args, err := docopt.Parse(usage, nil, true, "codis config v0.1", true) if err != nil { log.Error(err) } // set config file var configFile string var config *cfg.Cfg if args["-c"] != nil { configFile = args["-c"].(string) config, err = utils.InitConfigFromFile(configFile) if err != nil { log.Warning("load config file error") Fatal(err) } } else { config, err = utils.InitConfig() if err != nil { log.Warning("load config file error") Fatal(err) } } // load global vars globalEnv = env.LoadCodisEnv(config) // set output log file if args["-L"] != nil { log.SetOutputByName(args["-L"].(string)) } // set log level if args["--log-level"] != nil { log.SetLevelByString(args["--log-level"].(string)) } cmd := args["<command>"].(string) cmdArgs := args["<args>"].([]string) go http.ListenAndServe(":10086", nil) err = runCommand(cmd, cmdArgs) if err != nil { log.Fatal(errors.ErrorStack(err)) } }
func LoadConf(configFile string) (*Config, error) { c, err := utils.InitConfigFromFile(configFile) if err != nil { log.PanicErrorf(err, "load config '%s' failed", configFile) } conf := &Config{} conf.productName, _ = c.ReadString("product", "test") if len(conf.productName) == 0 { log.Panicf("invalid config: product entry is missing in %s", configFile) } conf.zkAddr, _ = c.ReadString("zk", "") if len(conf.zkAddr) == 0 { log.Panicf("invalid config: need zk entry is missing in %s", configFile) } conf.zkAddr = strings.TrimSpace(conf.zkAddr) conf.passwd, _ = c.ReadString("requirepass", "") conf.proxyId, _ = c.ReadString("proxy_id", "") if len(conf.proxyId) == 0 { log.Panicf("invalid config: need proxy_id entry is missing in %s", configFile) } conf.proto, _ = c.ReadString("proto", "tcp") conf.provider, _ = c.ReadString("coordinator", "zookeeper") loadConfInt := func(entry string, defInt int) int { v, _ := c.ReadInt(entry, defInt) if v < 0 { log.Panicf("invalid config: read %s = %d", entry, v) } return v } conf.pingPeriod = loadConfInt("backend_ping_period", 5) conf.maxTimeout = loadConfInt("session_max_timeout", 1800) conf.maxBufSize = loadConfInt("session_max_bufsize", 1024*32) conf.maxPipeline = loadConfInt("session_max_pipeline", 128) return conf, nil }
func LoadConf(configFile string) (*Conf, error) { srvConf := &Conf{} conf, err := utils.InitConfigFromFile(configFile) if err != nil { log.Fatal(err) } srvConf.productName, _ = conf.ReadString("product", "test") if len(srvConf.productName) == 0 { log.Fatalf("invalid config: product entry is missing in %s", configFile) } srvConf.zkAddr, _ = conf.ReadString("zk", "") if len(srvConf.zkAddr) == 0 { log.Fatalf("invalid config: need zk entry is missing in %s", configFile) } srvConf.proxyId, _ = conf.ReadString("proxy_id", "") if len(srvConf.proxyId) == 0 { log.Fatalf("invalid config: need proxy_id entry is missing in %s", configFile) } return srvConf, nil }
func main() { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) signal.Notify(c, syscall.SIGTERM) go func() { <-c if createdDashboardNode { releaseDashboardNode() } log.Panicf("ctrl-c or SIGTERM found, exit") }() args, err := docopt.Parse(usage, nil, true, "codis config v0.1", true) if err != nil { fmt.Println(err) os.Exit(1) } // set output log file if s, ok := args["-L"].(string); ok && s != "" { f, err := os.OpenFile(s, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) if err != nil { log.PanicErrorf(err, "open log file failed: %s", s) } else { defer f.Close() log.StdLog = log.New(f, "") } } log.SetLevel(log.LEVEL_INFO) log.SetFlags(log.Flags() | log.Lshortfile) // set log level if s, ok := args["--log-level"].(string); ok && s != "" { setLogLevel(s) } // set config file var configFile string var config *cfg.Cfg if args["-c"] != nil { configFile = args["-c"].(string) config, err = utils.InitConfigFromFile(configFile) if err != nil { log.PanicErrorf(err, "load config file error") } } else { config, err = utils.InitConfig() if err != nil { log.PanicErrorf(err, "load config file error") } } // load global vars globalEnv = LoadCodisEnv(config) cmd := args["<command>"].(string) cmdArgs := args["<args>"].([]string) go http.ListenAndServe(":10086", nil) err = runCommand(cmd, cmdArgs) if err != nil { log.PanicErrorf(err, "run sub-command failed") } }
func main() { log.SetLevelByString("info") c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) signal.Notify(c, syscall.SIGTERM) go func() { <-c Fatal("ctrl-c or SIGTERM found, exit") }() // productName, _ = config.ReadString("product", "test") args, err := docopt.Parse(usage, nil, true, "codis config v0.1", true) if err != nil { log.Error(err) } // set config file if args["-c"] != nil { configFile = args["-c"].(string) config, err = utils.InitConfigFromFile(configFile) if err != nil { Fatal(err) } } else { config, err = utils.InitConfig() if err != nil { Fatal(err) } } // set output log file if args["-L"] != nil { log.SetOutputByName(args["-L"].(string)) } // set log level if args["--log-level"] != nil { log.SetLevelByString(args["--log-level"].(string)) } productName, _ = config.ReadString("product", "test") zkAddr, _ = config.ReadString("zk", "localhost:2181") zkConn, _ = zkhelper.ConnectToZk(zkAddr) zkLock = utils.GetZkLock(zkConn, productName) log.Debugf("product: %s", productName) log.Debugf("zk: %s", zkAddr) if err := registerConfigNode(); err != nil { log.Fatal(errors.ErrorStack(err)) } defer unRegisterConfigNode() if err := removeOrphanLocks(); err != nil { log.Fatal(errors.ErrorStack(err)) } cmd := args["<command>"].(string) cmdArgs := args["<args>"].([]string) go http.ListenAndServe(":10086", nil) err = runCommand(cmd, cmdArgs) if err != nil { log.Fatal(errors.ErrorStack(err)) } }