diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 928a56358..32cd446b5 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -837,7 +837,6 @@ func main() { if *nodeID != "" { cfg.NodeID = *nodeID } - fmt.Printf("\ncfg.DigestSeparator %+v,\n cfg.DigestEqual %+v\n", cfg.DigestSeparator, cfg.DigestEqual) config.SetCgrConfig(cfg) // Share the config object // init syslog diff --git a/config/config.go b/config/config.go index deca8c370..eb52aae63 100755 --- a/config/config.go +++ b/config/config.go @@ -328,7 +328,7 @@ type CGRConfig struct { CDRSThresholdSConns []*HaPoolConfig // address where to reach the thresholds service CDRSStatSConns []*HaPoolConfig CDRSOnlineCDRExports []string // list of CDRE templates to use for real-time CDR exports - CDRStatsEnabled bool // Enable CDR Stats servicedigest_separator = "," + CDRStatsEnabled bool // Enable CDR Stats service CDRStatsSaveInterval time.Duration // Save interval duration CdreProfiles map[string]*CdreConfig CdrcProfiles map[string][]*CdrcConfig // Number of CDRC instances running imports, format map[dirPath][]{Configs} @@ -888,7 +888,11 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) { self.DataDbHost = *jsnDataDbCfg.Db_host } if jsnDataDbCfg.Db_port != nil { - self.DataDbPort = strconv.Itoa(*jsnDataDbCfg.Db_port) + port := strconv.Itoa(*jsnDataDbCfg.Db_port) + if port == "-1" { + port = utils.MetaDynamic + } + self.DataDbPort = NewDbDefaults().DBPort(*jsnDataDbCfg.Db_type, port) } if jsnDataDbCfg.Db_name != nil { self.DataDbName = *jsnDataDbCfg.Db_name @@ -912,7 +916,11 @@ func (self *CGRConfig) loadFromJsonCfg(jsnCfg *CgrJsonCfg) (err error) { self.StorDBHost = *jsnStorDbCfg.Db_host } if jsnStorDbCfg.Db_port != nil { - self.StorDBPort = strconv.Itoa(*jsnStorDbCfg.Db_port) + port := strconv.Itoa(*jsnStorDbCfg.Db_port) + if port == "-1" { + port = utils.MetaDynamic + } + self.StorDBPort = NewDbDefaults().DBPort(*jsnStorDbCfg.Db_type, port) } if jsnStorDbCfg.Db_name != nil { self.StorDBName = *jsnStorDbCfg.Db_name diff --git a/config/config_test.go b/config/config_test.go index 809073229..bd4f7d4c7 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -65,6 +65,76 @@ func TestCgrCfgLoadWithDefaults(t *testing.T) { } } +func TestCgrCfgDataDBPortWithoutDynamic(t *testing.T) { + JSN_CFG := ` +{ +"data_db": { + "db_type": "mongo", + } +}` + + if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(JSN_CFG); err != nil { + t.Error(err) + } else if cgrCfg.DataDbType != utils.MONGO { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.DataDbType, utils.MONGO) + } else if cgrCfg.DataDbPort != "6379" { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.DataDbPort, "6379") + } +} + +func TestCgrCfgDataDBPortWithDymanic(t *testing.T) { + JSN_CFG := ` +{ +"data_db": { + "db_type": "mongo", + "db_port": -1, + } +}` + + if cgrCfg, err := NewCGRConfigFromJsonString(JSN_CFG); err != nil { + t.Error(err) + } else if cgrCfg.DataDbType != utils.MONGO { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.DataDbType, utils.MONGO) + } else if cgrCfg.DataDbPort != "27017" { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.DataDbPort, "27017") + } +} + +func TestCgrCfgStorDBPortWithoutDynamic(t *testing.T) { + JSN_CFG := ` +{ +"stor_db": { + "db_type": "mongo", + } +}` + + if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(JSN_CFG); err != nil { + t.Error(err) + } else if cgrCfg.StorDBType != utils.MONGO { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.StorDBType, utils.MONGO) + } else if cgrCfg.StorDBPort != "3306" { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.StorDBPort, "3306") + } +} + +func TestCgrCfgStorDBPortWithDymanic(t *testing.T) { + JSN_CFG := ` +{ +"stor_db": { + "db_type": "mongo", + "db_port": -1, + } +}` + + if cgrCfg, err := NewCGRConfigFromJsonString(JSN_CFG); err != nil { + t.Error(err) + } else if cgrCfg.StorDBType != utils.MONGO { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.StorDBType, utils.MONGO) + } else if cgrCfg.StorDBPort != "27017" { + t.Errorf("Expected: %+v, received: %+v", cgrCfg.StorDBPort, "27017") + } +} + func TestCgrCfgCDRC(t *testing.T) { JSN_RAW_CFG := ` { @@ -217,6 +287,12 @@ func TestCgrCfgJSONDefaultsGeneral(t *testing.T) { if cgrCfg.LogLevel != 6 { t.Error(cgrCfg.LogLevel) } + if cgrCfg.DigestSeparator != "," { + t.Error(cgrCfg.DigestSeparator) + } + if cgrCfg.DigestEqual != ":" { + t.Error(cgrCfg.DigestEqual) + } } func TestCgrCfgJSONDefaultsListen(t *testing.T) {