mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 12:49:54 +05:00
Add verification in case RALs is required by routes
This commit is contained in:
committed by
Dan Christian Bogos
parent
a961d6225d
commit
e55b75b622
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user