From 03f0d4bec1aecaf6a52b07f702e5fe32485593ef Mon Sep 17 00:00:00 2001 From: Trial97 Date: Fri, 13 Dec 2019 11:56:13 +0200 Subject: [PATCH] Updated cgr-loader. Fixes #1817 --- cmd/cgr-loader/cgr-loader.go | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/cmd/cgr-loader/cgr-loader.go b/cmd/cgr-loader/cgr-loader.go index 0514a90c8..cd6b4985f 100755 --- a/cmd/cgr-loader/cgr-loader.go +++ b/cmd/cgr-loader/cgr-loader.go @@ -101,6 +101,7 @@ var ( cacheSAddress = cgrLoaderFlags.String("caches_address", dfltCfg.LoaderCgrCfg().CachesConns[0], "CacheS component to contact for cache reloads, empty to disable automatic cache reloads") schedulerAddress = cgrLoaderFlags.String("scheduler_address", dfltCfg.LoaderCgrCfg().SchedulerConns[0], "") + rpcEncoding = cgrLoaderFlags.String("rpc_encoding", rpcclient.JSONrpc, "RPC encoding used <*gob|*json>") ) func main() { @@ -196,18 +197,36 @@ func main() { } if *cacheSAddress != dfltCfg.LoaderCgrCfg().CachesConns[0] { - ldrCfg.LoaderCgrCfg().CachesConns = make([]string, 0) - if *cacheSAddress != "" { - ldrCfg.LoaderCgrCfg().CachesConns = append(ldrCfg.LoaderCgrCfg().CachesConns, - *cacheSAddress) + if *cacheSAddress == utils.EmptyString { + ldrCfg.LoaderCgrCfg().CachesConns = []string{} + } else { + ldrCfg.LoaderCgrCfg().CachesConns = []string{*cacheSAddress} + if _, has := ldrCfg.RPCConns()[*cacheSAddress]; !has { + ldrCfg.RPCConns()[*cacheSAddress] = &config.RPCConn{ + Strategy: rpcclient.PoolFirst, + Conns: []*config.RemoteHost{{ + Address: *cacheSAddress, + Transport: *rpcEncoding, + }}, + } + } } } if *schedulerAddress != dfltCfg.LoaderCgrCfg().SchedulerConns[0] { - ldrCfg.LoaderCgrCfg().SchedulerConns = make([]string, 0) - if *schedulerAddress != "" { - ldrCfg.LoaderCgrCfg().SchedulerConns = append(ldrCfg.LoaderCgrCfg().SchedulerConns, - *schedulerAddress) + if *schedulerAddress == utils.EmptyString { + ldrCfg.LoaderCgrCfg().SchedulerConns = []string{} + } else { + ldrCfg.LoaderCgrCfg().SchedulerConns = []string{*schedulerAddress} + if _, has := ldrCfg.RPCConns()[*schedulerAddress]; !has { + ldrCfg.RPCConns()[*schedulerAddress] = &config.RPCConn{ + Strategy: rpcclient.PoolFirst, + Conns: []*config.RemoteHost{{ + Address: *schedulerAddress, + Transport: *rpcEncoding, + }}, + } + } } }