|
|
@@ -1,114 +0,0 @@
|
|
|
-package odbc
|
|
|
-
|
|
|
-import (
|
|
|
- "fmt"
|
|
|
- "strings"
|
|
|
-
|
|
|
- odb "git.wecise.com/wecise/odb-go/odb"
|
|
|
- mcfg "gitee.com/wecisecode/util/cfg"
|
|
|
- mlog "gitee.com/wecisecode/util/logger"
|
|
|
- "gitee.com/wecisecode/util/set/strset"
|
|
|
-)
|
|
|
-
|
|
|
-var Config = mcfg.MConfig()
|
|
|
-var Logger = mlog.New().WithConfig(Config, "log")
|
|
|
-
|
|
|
-var ODBClient odb.Client
|
|
|
-var ODBError error
|
|
|
-var Debug bool
|
|
|
-var Usage string
|
|
|
-
|
|
|
-var default_keyspace = `oktest`
|
|
|
-var default_odbpaths = `127.0.0.1:11001`
|
|
|
-
|
|
|
-var default_config = &odb.Config{
|
|
|
- Hosts: []string{"127.0.0.1:11001"},
|
|
|
- Keyspace: "oktest",
|
|
|
- User: fmt.Sprint("测试客户端"),
|
|
|
- Pass: "********",
|
|
|
- PoolSize: 20,
|
|
|
- Debug: false,
|
|
|
-}
|
|
|
-
|
|
|
-func config_merge(a *odb.Config, b *odb.Config) *odb.Config {
|
|
|
- if len(b.Hosts) > 0 {
|
|
|
- a.Hosts = b.Hosts
|
|
|
- }
|
|
|
- if b.Port != 0 {
|
|
|
- a.Port = b.Port
|
|
|
- }
|
|
|
- if b.Keyspace != "" {
|
|
|
- a.Keyspace = b.Keyspace
|
|
|
- }
|
|
|
- if b.User != "" {
|
|
|
- a.User = b.User
|
|
|
- }
|
|
|
- if b.Pass != "" {
|
|
|
- a.Pass = b.Pass
|
|
|
- }
|
|
|
- if b.PoolSize != 0 {
|
|
|
- a.PoolSize = b.PoolSize
|
|
|
- }
|
|
|
- if b.Debug {
|
|
|
- a.Debug = b.Debug
|
|
|
- }
|
|
|
- return a
|
|
|
-}
|
|
|
-
|
|
|
-// 参数设置为程序默认配置
|
|
|
-// 可以通过命令行,环境变量 或 与应用同名的.conf配置文件 设置
|
|
|
-// 远程连接需要在白名单中增加本地IP
|
|
|
-func ODBC(odbcfgs ...*odb.Config) odb.Client {
|
|
|
- odbcfg := config_merge(&odb.Config{}, default_config)
|
|
|
- for _, c := range odbcfgs {
|
|
|
- odbcfg = config_merge(odbcfg, c)
|
|
|
- }
|
|
|
- default_keyspace = odbcfg.Keyspace
|
|
|
- default_odbpaths = strings.Join(odbcfg.Hosts, ",")
|
|
|
- Usage = `
|
|
|
-命令行参数:
|
|
|
-odbpath=` + default_odbpaths + ` #指定odbserver路径,默认通过环境变量ODBPATH或通过ETCD相关配置获取
|
|
|
-keyspace=` + default_keyspace + ` #指定keyspace,默认通过环境变量KEYSPACE获取
|
|
|
-debug=true #开启调试模式,输出更多信息
|
|
|
-
|
|
|
-环境变量需求:
|
|
|
-ODBPATH=` + default_odbpaths + ` #指定odbserver路径,默认通过配置信息 odbc.odbpath 获取
|
|
|
-KEYSPACE=` + default_keyspace + ` #指定keyspace,默认通过配置信息 odbc.keyspace 获取
|
|
|
-ETCDPATH=127.0.0.1:2379 #必须设置
|
|
|
-ETCDUSER=
|
|
|
-ETCDPASS=
|
|
|
-CASSANDRAPATH=127.0.0.1
|
|
|
-CASSANDRALOOKUP=false
|
|
|
-NATSPATH=nats://user:N5JbKeT1C3uOUh317OVXjg==@127.0.0.1:4222
|
|
|
-
|
|
|
-LANG=zh_CN.utf8
|
|
|
-LC_ALL=zh_CN.utf8
|
|
|
-
|
|
|
-可通过` + mcfg.DefaultAppName + `.conf配置运行参数:
|
|
|
-[odbc]
|
|
|
-;指定odbserver路径
|
|
|
-odbpath=` + default_odbpaths + `
|
|
|
-;指定keyspace
|
|
|
-keyspace=` + default_keyspace + `
|
|
|
-`
|
|
|
- Logger.SetFormat("yyyy-MM-dd HH:mm:ss.SSSSSS [pid] [level] msg", "\n")
|
|
|
- odbpaths := strset.New(strings.Split(mcfg.CommandArgs.GetString("odbpath",
|
|
|
- strings.Join(mcfg.Environs.GetStrings("ODBPATH",
|
|
|
- Config.GetStrings("odbc.odbpath", default_odbpaths)...), ",")), ",")...).List()
|
|
|
- keyspace := mcfg.CommandArgs.GetString("keyspace",
|
|
|
- mcfg.Environs.GetString("KEYSPACE", Config.GetString("odbc.keyspace", default_keyspace)))
|
|
|
- Debug = mcfg.CommandArgs.GetBool("debug", false)
|
|
|
- ODBClient, ODBError = odb.NewClient(config_merge(odbcfg, &odb.Config{
|
|
|
- Keyspace: keyspace,
|
|
|
- Hosts: odbpaths,
|
|
|
- Debug: Debug,
|
|
|
- }))
|
|
|
- if ODBError != nil {
|
|
|
- fmt.Print(Usage)
|
|
|
- panic(ODBError)
|
|
|
- }
|
|
|
- Logger.Info("odbpath :", ODBClient.Config().Hosts, ODBClient.Config().Port)
|
|
|
- Logger.Info("keyspace:", ODBClient.Config().Keyspace)
|
|
|
- Logger.Info("debug: ", Debug)
|
|
|
- return ODBClient
|
|
|
-}
|