diff --git a/config/config_test.go b/config/config_test.go index d8a4245db..1bc86967d 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -784,7 +784,7 @@ func TestCgrCfgJSONDefaultRouteSCfg(t *testing.T) { AttributeSConns: []string{}, ResourceSConns: []string{}, StatSConns: []string{}, - ResponderSConns: []string{}, + RALsConns: []string{}, DefaultRatio: 1, } if !reflect.DeepEqual(eSupplSCfg, cgrCfg.routeSCfg) { diff --git a/config/configsanity.go b/config/configsanity.go index 33c97725d..e6e2c78c9 100644 --- a/config/configsanity.go +++ b/config/configsanity.go @@ -483,6 +483,14 @@ func (cfg *CGRConfig) checkConfigSanity() error { return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.RouteS, connID) } } + for _, connID := range cfg.routeSCfg.RALsConns { + if strings.HasPrefix(connID, utils.MetaInternal) && !cfg.ralsCfg.Enabled { + return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.RALService, utils.RouteS) + } + if _, has := cfg.rpcConns[connID]; !has && !strings.HasPrefix(connID, utils.MetaInternal) { + return fmt.Errorf("<%s> connection with id: <%s> not defined", utils.RouteS, connID) + } + } } // Scheduler check connection with CDR Server if cfg.schedulerCfg.Enabled { diff --git a/config/routescfg.go b/config/routescfg.go index df678582a..b3c80e12d 100644 --- a/config/routescfg.go +++ b/config/routescfg.go @@ -33,7 +33,7 @@ type RouteSCfg struct { AttributeSConns []string ResourceSConns []string StatSConns []string - ResponderSConns []string + RALsConns []string DefaultRatio int NestedFields bool } @@ -96,13 +96,13 @@ func (rts *RouteSCfg) loadFromJsonCfg(jsnCfg *RouteSJsonCfg) (err error) { } } if jsnCfg.Rals_conns != nil { - rts.ResponderSConns = make([]string, len(*jsnCfg.Rals_conns)) + rts.RALsConns = make([]string, len(*jsnCfg.Rals_conns)) for idx, conn := range *jsnCfg.Rals_conns { // if we have the connection internal we change the name so we can have internal rpc for each subsystem if conn == utils.MetaInternal { - rts.ResponderSConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder) + rts.RALsConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder) } else { - rts.ResponderSConns[idx] = conn + rts.RALsConns[idx] = conn } } } @@ -140,14 +140,14 @@ func (rts *RouteSCfg) AsMapInterface() map[string]interface{} { attributeSConns[i] = item } } - responderSConns := make([]string, len(rts.ResponderSConns)) - for i, item := range rts.ResponderSConns { + ralSConns := make([]string, len(rts.RALsConns)) + for i, item := range rts.RALsConns { buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder) if item == buf { - responderSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResponder, utils.EmptyString) + ralSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResponder, utils.EmptyString) } else { - responderSConns[i] = item + ralSConns[i] = item } } resourceSConns := make([]string, len(rts.ResourceSConns)) @@ -177,7 +177,7 @@ func (rts *RouteSCfg) AsMapInterface() map[string]interface{} { utils.AttributeSConnsCfg: attributeSConns, utils.ResourceSConnsCfg: resourceSConns, utils.StatSConnsCfg: statSConns, - utils.RALsConnsCfg: responderSConns, + utils.RALsConnsCfg: ralSConns, utils.DefaultRatioCfg: rts.DefaultRatio, utils.NestedFieldsCfg: rts.NestedFields, } diff --git a/engine/routes.go b/engine/routes.go index 19aed57db..436a9d851 100644 --- a/engine/routes.go +++ b/engine/routes.go @@ -245,7 +245,7 @@ func (rpS *RouteService) costForEvent(ev *utils.CGREvent, err = nil } var rplyVals map[string]interface{} - if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().ResponderSConns, nil, utils.ResponderGetMaxSessionTimeOnAccounts, + if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().RALsConns, nil, utils.ResponderGetMaxSessionTimeOnAccounts, &utils.GetMaxSessionTimeOnAccountsArgs{ Tenant: ev.Tenant, Subject: subj, @@ -260,7 +260,7 @@ func (rpS *RouteService) costForEvent(ev *utils.CGREvent, costData[k] = v } rplyVals = make(map[string]interface{}) // reset the map - if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().ResponderSConns, nil, utils.ResponderGetCostOnRatingPlans, + if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().RALsConns, nil, utils.ResponderGetCostOnRatingPlans, &utils.GetCostOnRatingPlansArgs{ Tenant: ev.Tenant, Account: acnt,