From bff3e1d143d706ef42b7d2848402deb34b2b8c5a Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Thu, 7 Oct 2021 18:23:20 +0300 Subject: [PATCH] Make opts in ConfigDBCfg be of type DataDBOpts --- config/config.go | 2 +- config/configdbcfg.go | 28 +++++++++++++++------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/config/config.go b/config/config.go index b86d30916..51fe881c8 100644 --- a/config/config.go +++ b/config/config.go @@ -192,7 +192,7 @@ func newCGRConfig(config []byte) (cfg *CGRConfig, err error) { Usage: []*utils.DynamicDecimalBigOpt{}, }}, configDBCfg: &ConfigDBCfg{ - Opts: make(map[string]interface{}), + Opts: &DataDBOpts{}, }, rldCh: make(chan string, 1), diff --git a/config/configdbcfg.go b/config/configdbcfg.go index 2be18f373..cbf533a1a 100644 --- a/config/configdbcfg.go +++ b/config/configdbcfg.go @@ -34,7 +34,7 @@ type ConfigDBCfg struct { Name string // The name of the database to connect to. User string // The user to sign in as. Password string // The user's password. - Opts map[string]interface{} + Opts *DataDBOpts } // loadConfigDBCfg loads the DataDB section of the configuration @@ -76,11 +76,8 @@ func (dbcfg *ConfigDBCfg) loadFromJSONCfg(jsnDbCfg *DbJsonCfg) (err error) { if jsnDbCfg.Db_password != nil { dbcfg.Password = *jsnDbCfg.Db_password } - if jsnDbCfg.Opts != nil { - for k, v := range jsnDbCfg.Opts { - dbcfg.Opts[k] = v - } + err = dbcfg.Opts.loadFromJSONCfg(jsnDbCfg.Opts) } return } @@ -97,26 +94,31 @@ func (dbcfg ConfigDBCfg) Clone() (cln *ConfigDBCfg) { Name: dbcfg.Name, User: dbcfg.User, Password: dbcfg.Password, - Opts: make(map[string]interface{}), - } - for k, v := range dbcfg.Opts { - cln.Opts[k] = v + Opts: dbcfg.Opts.Clone(), } return } // AsMapInterface returns the config as a map[string]interface{} func (dbcfg ConfigDBCfg) AsMapInterface(string) interface{} { + opts := map[string]interface{}{ + utils.RedisSentinelNameCfg: dbcfg.Opts.RedisSentinel, + utils.RedisClusterCfg: dbcfg.Opts.RedisCluster, + utils.RedisClusterSyncCfg: dbcfg.Opts.RedisClusterSync.String(), + utils.RedisClusterOnDownDelayCfg: dbcfg.Opts.RedisClusterOndownDelay.String(), + utils.MongoQueryTimeoutCfg: dbcfg.Opts.MongoQueryTimeout.String(), + utils.RedisTLS: dbcfg.Opts.RedisTLS, + utils.RedisClientCertificate: dbcfg.Opts.RedisClientCertificate, + utils.RedisClientKey: dbcfg.Opts.RedisClientKey, + utils.RedisCACertificate: dbcfg.Opts.RedisCACertificate, + } mp := map[string]interface{}{ utils.DataDbTypeCfg: utils.Meta + dbcfg.Type, utils.DataDbHostCfg: dbcfg.Host, utils.DataDbNameCfg: dbcfg.Name, utils.DataDbUserCfg: dbcfg.User, utils.DataDbPassCfg: dbcfg.Password, - } - opts := make(map[string]interface{}) - for k, v := range dbcfg.Opts { - opts[k] = v + utils.OptsCfg: opts, } mp[utils.OptsCfg] = opts if dbcfg.Port != "" {