Added DataDbCfg

This commit is contained in:
Trial97
2018-10-04 13:54:57 +03:00
parent 962005ad28
commit c3ca7b7620
29 changed files with 824 additions and 623 deletions

View File

@@ -1163,9 +1163,11 @@ func main() {
cfg.AliasesServerEnabled || cfg.UserServerEnabled || cfg.SchedulerCfg().Enabled ||
cfg.AttributeSCfg().Enabled || cfg.ResourceSCfg().Enabled || cfg.StatSCfg().Enabled ||
cfg.ThresholdSCfg().Enabled || cfg.SupplierSCfg().Enabled { // Some services can run without db, ie: SessionS or CDRC
dm, err = engine.ConfigureDataStorage(cfg.DataDbType, cfg.DataDbHost,
cfg.DataDbPort, cfg.DataDbName, cfg.DataDbUser, cfg.DataDbPass,
cfg.DBDataEncoding, cfg.CacheCfg(), cfg.DataDbSentinelName)
dm, err = engine.ConfigureDataStorage(cfg.DataDbCfg().DataDbType,
cfg.DataDbCfg().DataDbHost, cfg.DataDbCfg().DataDbPort,
cfg.DataDbCfg().DataDbName, cfg.DataDbCfg().DataDbUser,
cfg.DataDbCfg().DataDbPass, cfg.DBDataEncoding,
cfg.CacheCfg(), cfg.DataDbCfg().DataDbSentinelName)
if err != nil { // Cannot configure getter database, show stopper
utils.Logger.Crit(fmt.Sprintf("Could not configure dataDb: %s exiting!", err))
return

View File

@@ -37,21 +37,21 @@ var (
cfgDir = flag.String("config_dir", "",
"Configuration directory path.")
dataDBType = flag.String("datadb_type", dfltCfg.DataDbType,
dataDBType = flag.String("datadb_type", dfltCfg.DataDbCfg().DataDbType,
"The type of the DataDB database <*redis|*mongo>")
dataDBHost = flag.String("datadb_host", dfltCfg.DataDbHost,
dataDBHost = flag.String("datadb_host", dfltCfg.DataDbCfg().DataDbHost,
"The DataDb host to connect to.")
dataDBPort = flag.String("datadb_port", dfltCfg.DataDbPort,
dataDBPort = flag.String("datadb_port", dfltCfg.DataDbCfg().DataDbPort,
"The DataDb port to bind to.")
dataDBName = flag.String("datadb_name", dfltCfg.DataDbName,
dataDBName = flag.String("datadb_name", dfltCfg.DataDbCfg().DataDbName,
"The name/number of the DataDb to connect to.")
dataDBUser = flag.String("datadb_user", dfltCfg.DataDbUser,
dataDBUser = flag.String("datadb_user", dfltCfg.DataDbCfg().DataDbUser,
"The DataDb user to sign in as.")
dataDBPasswd = flag.String("datadb_passwd", dfltCfg.DataDbPass,
dataDBPasswd = flag.String("datadb_passwd", dfltCfg.DataDbCfg().DataDbPass,
"The DataDb user's password.")
dbDataEncoding = flag.String("dbdata_encoding", dfltCfg.DBDataEncoding,
"The encoding used to store object data in strings")
dbRedisSentinel = flag.String("redis_sentinel", dfltCfg.DataDbSentinelName,
dbRedisSentinel = flag.String("redis_sentinel", dfltCfg.DataDbCfg().DataDbSentinelName,
"The name of redis sentinel")
storDBType = flag.String("stordb_type", dfltCfg.StorDBType,
@@ -116,32 +116,32 @@ func main() {
}
}
if *dataDBType != dfltCfg.DataDbType {
ldrCfg.DataDbType = *dataDBType
if *dataDBType != dfltCfg.DataDbCfg().DataDbType {
ldrCfg.DataDbCfg().DataDbType = *dataDBType
}
if *dataDBHost != dfltCfg.DataDbHost {
ldrCfg.DataDbHost = *dataDBHost
if *dataDBHost != dfltCfg.DataDbCfg().DataDbHost {
ldrCfg.DataDbCfg().DataDbHost = *dataDBHost
}
if *dataDBPort != dfltCfg.DataDbPort {
ldrCfg.DataDbPort = *dataDBPort
if *dataDBPort != dfltCfg.DataDbCfg().DataDbPort {
ldrCfg.DataDbCfg().DataDbPort = *dataDBPort
}
if *dataDBName != dfltCfg.DataDbName {
ldrCfg.DataDbName = *dataDBName
if *dataDBName != dfltCfg.DataDbCfg().DataDbName {
ldrCfg.DataDbCfg().DataDbName = *dataDBName
}
if *dataDBUser != dfltCfg.DataDbUser {
ldrCfg.DataDbUser = *dataDBUser
if *dataDBUser != dfltCfg.DataDbCfg().DataDbUser {
ldrCfg.DataDbCfg().DataDbUser = *dataDBUser
}
if *dataDBPasswd != dfltCfg.DataDbPass {
ldrCfg.DataDbPass = *dataDBPasswd
if *dataDBPasswd != dfltCfg.DataDbCfg().DataDbPass {
ldrCfg.DataDbCfg().DataDbPass = *dataDBPasswd
}
if *dbRedisSentinel != dfltCfg.DataDbSentinelName {
ldrCfg.DataDbSentinelName = *dbRedisSentinel
if *dbRedisSentinel != dfltCfg.DataDbCfg().DataDbSentinelName {
ldrCfg.DataDbCfg().DataDbSentinelName = *dbRedisSentinel
}
if *storDBType != dfltCfg.StorDBType {
@@ -214,10 +214,11 @@ func main() {
}
if !*toStorDB {
if dm, err = engine.ConfigureDataStorage(ldrCfg.DataDbType, ldrCfg.DataDbHost,
ldrCfg.DataDbPort, ldrCfg.DataDbName,
ldrCfg.DataDbUser, ldrCfg.DataDbPass, ldrCfg.DBDataEncoding,
config.CgrConfig().CacheCfg(), ldrCfg.DataDbSentinelName); err != nil {
if dm, err = engine.ConfigureDataStorage(ldrCfg.DataDbCfg().DataDbType,
ldrCfg.DataDbCfg().DataDbHost, ldrCfg.DataDbCfg().DataDbPort,
ldrCfg.DataDbCfg().DataDbName, ldrCfg.DataDbCfg().DataDbUser,
ldrCfg.DataDbCfg().DataDbPass, ldrCfg.DBDataEncoding,
config.CgrConfig().CacheCfg(), ldrCfg.DataDbCfg().DataDbSentinelName); err != nil {
log.Fatalf("Coud not open dataDB connection: %s", err.Error())
}
defer dm.DataDB().Close()

View File

@@ -29,8 +29,6 @@ import (
"github.com/cgrates/cgrates/utils"
)
const ()
var (
sameDataDB, sameStorDB bool
dmIN, dmOUT migrator.MigratorDataDB
@@ -44,21 +42,21 @@ var (
"\n <*set_versions|*cost_details|*accounts|*actions|*action_triggers|*action_plans|*shared_groups|*stordb|*datadb>")
version = flag.Bool("version", false, "prints the application version")
inDataDBType = flag.String("datadb_type", dfltCfg.DataDbType,
inDataDBType = flag.String("datadb_type", dfltCfg.DataDbCfg().DataDbType,
"the type of the DataDB Database <*redis|*mongo>")
inDataDBHost = flag.String("datadb_host", dfltCfg.DataDbHost,
inDataDBHost = flag.String("datadb_host", dfltCfg.DataDbCfg().DataDbHost,
"the DataDB host")
inDataDBPort = flag.String("datadb_port", dfltCfg.DataDbPort,
inDataDBPort = flag.String("datadb_port", dfltCfg.DataDbCfg().DataDbPort,
"the DataDB port")
inDataDBName = flag.String("datadb_name", dfltCfg.DataDbName,
inDataDBName = flag.String("datadb_name", dfltCfg.DataDbCfg().DataDbName,
"the name/number of the DataDB")
inDataDBUser = flag.String("datadb_user", dfltCfg.DataDbUser,
inDataDBUser = flag.String("datadb_user", dfltCfg.DataDbCfg().DataDbUser,
"the DataDB user")
inDataDBPass = flag.String("datadb_passwd", dfltCfg.DataDbPass,
inDataDBPass = flag.String("datadb_passwd", dfltCfg.DataDbCfg().DataDbPass,
"the DataDB password")
inDBDataEncoding = flag.String("dbdata_encoding", dfltCfg.DBDataEncoding,
"the encoding used to store object Data in strings")
inDataDBRedisSentinel = flag.String("redis_sentinel", dfltCfg.DataDbSentinelName,
inDataDBRedisSentinel = flag.String("redis_sentinel", dfltCfg.DataDbCfg().DataDbSentinelName,
"the name of redis sentinel")
outDataDBType = flag.String("out_datadb_type", utils.MetaDataDB,
@@ -124,35 +122,35 @@ func main() {
}
// inDataDB
if *inDataDBType != dfltCfg.DataDbType {
mgrCfg.DataDbType = strings.TrimPrefix(*inDataDBType, "*")
if *inDataDBType != dfltCfg.DataDbCfg().DataDbType {
mgrCfg.DataDbCfg().DataDbType = strings.TrimPrefix(*inDataDBType, "*")
}
if *inDataDBHost != dfltCfg.DataDbHost {
mgrCfg.DataDbHost = *inDataDBHost
if *inDataDBHost != dfltCfg.DataDbCfg().DataDbHost {
mgrCfg.DataDbCfg().DataDbHost = *inDataDBHost
}
if *inDataDBPort != dfltCfg.DataDbPort {
mgrCfg.DataDbPort = *inDataDBPort
if *inDataDBPort != dfltCfg.DataDbCfg().DataDbPort {
mgrCfg.DataDbCfg().DataDbPort = *inDataDBPort
}
if *inDataDBName != dfltCfg.DataDbName {
mgrCfg.DataDbName = *inDataDBName
if *inDataDBName != dfltCfg.DataDbCfg().DataDbName {
mgrCfg.DataDbCfg().DataDbName = *inDataDBName
}
if *inDataDBUser != dfltCfg.DataDbUser {
mgrCfg.DataDbUser = *inDataDBUser
if *inDataDBUser != dfltCfg.DataDbCfg().DataDbUser {
mgrCfg.DataDbCfg().DataDbUser = *inDataDBUser
}
if *inDataDBPass != dfltCfg.DataDbPass {
mgrCfg.DataDbPass = *inDataDBPass
if *inDataDBPass != dfltCfg.DataDbCfg().DataDbPass {
mgrCfg.DataDbCfg().DataDbPass = *inDataDBPass
}
if *inDBDataEncoding != dfltCfg.DBDataEncoding {
mgrCfg.DBDataEncoding = *inDBDataEncoding
}
if *inDataDBRedisSentinel != dfltCfg.DataDbSentinelName {
mgrCfg.DataDbSentinelName = *inDataDBRedisSentinel
if *inDataDBRedisSentinel != dfltCfg.DataDbCfg().DataDbSentinelName {
mgrCfg.DataDbCfg().DataDbSentinelName = *inDataDBRedisSentinel
}
// outDataDB
if *outDataDBType == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBType == mgrCfg.MigratorCgrConfig.OutDataDBType {
mgrCfg.MigratorCgrConfig.OutDataDBType = mgrCfg.DataDbType
mgrCfg.MigratorCgrConfig.OutDataDBType = mgrCfg.DataDbCfg().DataDbType
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBType = strings.TrimPrefix(*outDataDBType, "*")
@@ -160,35 +158,35 @@ func main() {
if *outDataDBHost == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBHost == mgrCfg.MigratorCgrConfig.OutDataDBHost {
mgrCfg.MigratorCgrConfig.OutDataDBHost = mgrCfg.DataDbHost
mgrCfg.MigratorCgrConfig.OutDataDBHost = mgrCfg.DataDbCfg().DataDbHost
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBHost = *outDataDBHost
}
if *outDataDBPort == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBPort == mgrCfg.MigratorCgrConfig.OutDataDBPort {
mgrCfg.MigratorCgrConfig.OutDataDBPort = mgrCfg.DataDbPort
mgrCfg.MigratorCgrConfig.OutDataDBPort = mgrCfg.DataDbCfg().DataDbPort
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBPort = *outDataDBPort
}
if *outDataDBName == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBName == mgrCfg.MigratorCgrConfig.OutDataDBName {
mgrCfg.MigratorCgrConfig.OutDataDBName = mgrCfg.DataDbName
mgrCfg.MigratorCgrConfig.OutDataDBName = mgrCfg.DataDbCfg().DataDbName
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBName = *outDataDBName
}
if *outDataDBUser == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBUser == mgrCfg.MigratorCgrConfig.OutDataDBUser {
mgrCfg.MigratorCgrConfig.OutDataDBUser = mgrCfg.DataDbUser
mgrCfg.MigratorCgrConfig.OutDataDBUser = mgrCfg.DataDbCfg().DataDbUser
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBUser = *outDataDBUser
}
if *outDataDBPass == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBPassword == mgrCfg.MigratorCgrConfig.OutDataDBPassword {
mgrCfg.MigratorCgrConfig.OutDataDBPassword = mgrCfg.DataDbPass
mgrCfg.MigratorCgrConfig.OutDataDBPassword = mgrCfg.DataDbCfg().DataDbPass
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBPassword = *outDataDBPass
@@ -202,23 +200,23 @@ func main() {
}
if *outDataDBRedisSentinel == utils.MetaDataDB {
if dfltCfg.MigratorCgrConfig.OutDataDBRedisSentinel == mgrCfg.MigratorCgrConfig.OutDataDBRedisSentinel {
mgrCfg.MigratorCgrConfig.OutDataDBRedisSentinel = mgrCfg.DataDbSentinelName
mgrCfg.MigratorCgrConfig.OutDataDBRedisSentinel = mgrCfg.DataDbCfg().DataDbSentinelName
}
} else {
mgrCfg.MigratorCgrConfig.OutDataDBRedisSentinel = *outDataDBRedisSentinel
}
sameDataDB = mgrCfg.MigratorCgrConfig.OutDataDBType == mgrCfg.DataDbType &&
mgrCfg.MigratorCgrConfig.OutDataDBHost == mgrCfg.DataDbHost &&
mgrCfg.MigratorCgrConfig.OutDataDBPort == mgrCfg.DataDbPort &&
mgrCfg.MigratorCgrConfig.OutDataDBName == mgrCfg.DataDbName &&
sameDataDB = mgrCfg.MigratorCgrConfig.OutDataDBType == mgrCfg.DataDbCfg().DataDbType &&
mgrCfg.MigratorCgrConfig.OutDataDBHost == mgrCfg.DataDbCfg().DataDbHost &&
mgrCfg.MigratorCgrConfig.OutDataDBPort == mgrCfg.DataDbCfg().DataDbPort &&
mgrCfg.MigratorCgrConfig.OutDataDBName == mgrCfg.DataDbCfg().DataDbName &&
mgrCfg.MigratorCgrConfig.OutDataDBEncoding == mgrCfg.DBDataEncoding
if dmIN, err = migrator.NewMigratorDataDB(mgrCfg.DataDbType,
mgrCfg.DataDbHost, mgrCfg.DataDbPort,
mgrCfg.DataDbName, mgrCfg.DataDbUser,
mgrCfg.DataDbPass, mgrCfg.DBDataEncoding,
mgrCfg.CacheCfg(), mgrCfg.DataDbSentinelName); err != nil {
if dmIN, err = migrator.NewMigratorDataDB(mgrCfg.DataDbCfg().DataDbType,
mgrCfg.DataDbCfg().DataDbHost, mgrCfg.DataDbCfg().DataDbPort,
mgrCfg.DataDbCfg().DataDbName, mgrCfg.DataDbCfg().DataDbUser,
mgrCfg.DataDbCfg().DataDbPass, mgrCfg.DBDataEncoding,
mgrCfg.CacheCfg(), mgrCfg.DataDbCfg().DataDbSentinelName); err != nil {
log.Fatal(err)
}

View File

@@ -45,14 +45,14 @@ var (
"Configuration directory path.")
parallel = flag.Int("parallel", 0, "run n requests in parallel")
datadb_type = flag.String("datadb_type", cgrConfig.DataDbType, "The type of the DataDb database <redis>")
datadb_host = flag.String("datadb_host", cgrConfig.DataDbHost, "The DataDb host to connect to.")
datadb_port = flag.String("datadb_port", cgrConfig.DataDbPort, "The DataDb port to bind to.")
datadb_name = flag.String("datadb_name", cgrConfig.DataDbName, "The name/number of the DataDb to connect to.")
datadb_user = flag.String("datadb_user", cgrConfig.DataDbUser, "The DataDb user to sign in as.")
datadb_pass = flag.String("datadb_pass", cgrConfig.DataDbPass, "The DataDb user's password.")
datadb_type = flag.String("datadb_type", cgrConfig.DataDbCfg().DataDbType, "The type of the DataDb database <redis>")
datadb_host = flag.String("datadb_host", cgrConfig.DataDbCfg().DataDbHost, "The DataDb host to connect to.")
datadb_port = flag.String("datadb_port", cgrConfig.DataDbCfg().DataDbPort, "The DataDb port to bind to.")
datadb_name = flag.String("datadb_name", cgrConfig.DataDbCfg().DataDbName, "The name/number of the DataDb to connect to.")
datadb_user = flag.String("datadb_user", cgrConfig.DataDbCfg().DataDbUser, "The DataDb user to sign in as.")
datadb_pass = flag.String("datadb_pass", cgrConfig.DataDbCfg().DataDbPass, "The DataDb user's password.")
dbdata_encoding = flag.String("dbdata_encoding", cgrConfig.DBDataEncoding, "The encoding used to store object data in strings.")
redis_sentinel = flag.String("redis_sentinel", cgrConfig.DataDbSentinelName, "The name of redis sentinel")
redis_sentinel = flag.String("redis_sentinel", cgrConfig.DataDbCfg().DataDbSentinelName, "The name of redis sentinel")
raterAddress = flag.String("rater_address", "", "Rater address for remote tests. Empty for internal rater.")
tor = flag.String("tor", utils.VOICE, "The type of record to use in queries.")
category = flag.String("category", "call", "The Record category to test.")
@@ -70,9 +70,11 @@ var (
)
func durInternalRater(cd *engine.CallDescriptor) (time.Duration, error) {
dm, err := engine.ConfigureDataStorage(tstCfg.DataDbType, tstCfg.DataDbHost, tstCfg.DataDbPort,
tstCfg.DataDbName, tstCfg.DataDbUser, tstCfg.DataDbPass, tstCfg.DBDataEncoding,
cgrConfig.CacheCfg(), tstCfg.DataDbSentinelName) // for the momentn we use here "" for sentinelName
dm, err := engine.ConfigureDataStorage(tstCfg.DataDbCfg().DataDbType,
tstCfg.DataDbCfg().DataDbHost, tstCfg.DataDbCfg().DataDbPort,
tstCfg.DataDbCfg().DataDbName, tstCfg.DataDbCfg().DataDbUser,
tstCfg.DataDbCfg().DataDbPass, tstCfg.DBDataEncoding,
cgrConfig.CacheCfg(), tstCfg.DataDbCfg().DataDbSentinelName) // for the momentn we use here "" for sentinelName
if err != nil {
return nilDuration, fmt.Errorf("Could not connect to data database: %s", err.Error())
}
@@ -165,29 +167,29 @@ func main() {
}
}
if *datadb_type != cgrConfig.DataDbType {
tstCfg.DataDbType = *datadb_type
if *datadb_type != cgrConfig.DataDbCfg().DataDbType {
tstCfg.DataDbCfg().DataDbType = *datadb_type
}
if *datadb_host != cgrConfig.DataDbHost {
tstCfg.DataDbHost = *datadb_host
if *datadb_host != cgrConfig.DataDbCfg().DataDbHost {
tstCfg.DataDbCfg().DataDbHost = *datadb_host
}
if *datadb_port != cgrConfig.DataDbPort {
tstCfg.DataDbPort = *datadb_port
if *datadb_port != cgrConfig.DataDbCfg().DataDbPort {
tstCfg.DataDbCfg().DataDbPort = *datadb_port
}
if *datadb_name != cgrConfig.DataDbName {
tstCfg.DataDbName = *datadb_name
if *datadb_name != cgrConfig.DataDbCfg().DataDbName {
tstCfg.DataDbCfg().DataDbName = *datadb_name
}
if *datadb_user != cgrConfig.DataDbUser {
tstCfg.DataDbUser = *datadb_user
if *datadb_user != cgrConfig.DataDbCfg().DataDbUser {
tstCfg.DataDbCfg().DataDbUser = *datadb_user
}
if *datadb_pass != cgrConfig.DataDbPass {
tstCfg.DataDbPass = *datadb_pass
if *datadb_pass != cgrConfig.DataDbCfg().DataDbPass {
tstCfg.DataDbCfg().DataDbPass = *datadb_pass
}
if *dbdata_encoding != "" {
tstCfg.DBDataEncoding = *dbdata_encoding
}
if *redis_sentinel != "" {
tstCfg.DataDbSentinelName = *redis_sentinel
tstCfg.DataDbCfg().DataDbSentinelName = *redis_sentinel
}
if *cpuprofile != "" {