mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-14 20:59:53 +05:00
Add rates_conns in routes section + update tests
This commit is contained in:
committed by
Dan Christian Bogos
parent
83f5ad7b7f
commit
1c0dc4f06a
@@ -619,6 +619,7 @@ const CGRATES_CFG_JSON = `
|
||||
"resources_conns": [], // connections to ResourceS for *res sorting, empty to disable functionality: <""|*internal|$rpc_conns_id>
|
||||
"stats_conns": [], // connections to StatS for *stats sorting, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
|
||||
"rals_conns": [], // connections to Rater for calculating cost, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
|
||||
"rates_conns": [], // connections to RateS for calculating cost, empty to disable stats functionality: <""|*internal|$rpc_conns_id>
|
||||
"default_ratio":1 // default ratio used in case of *load strategy
|
||||
},
|
||||
|
||||
|
||||
@@ -1037,6 +1037,7 @@ func TestDfRouteSJsonCfg(t *testing.T) {
|
||||
Resources_conns: &[]string{},
|
||||
Stats_conns: &[]string{},
|
||||
Rals_conns: &[]string{},
|
||||
Rates_conns: &[]string{},
|
||||
Default_ratio: utils.IntPointer(1),
|
||||
Nested_fields: utils.BoolPointer(false),
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -462,6 +462,7 @@ type RouteSJsonCfg struct {
|
||||
Resources_conns *[]string
|
||||
Stats_conns *[]string
|
||||
Rals_conns *[]string
|
||||
Rates_conns *[]string
|
||||
Default_ratio *int
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ type RouteSCfg struct {
|
||||
ResourceSConns []string
|
||||
StatSConns []string
|
||||
RALsConns []string
|
||||
RateSConns []string
|
||||
DefaultRatio int
|
||||
NestedFields bool
|
||||
}
|
||||
@@ -114,6 +115,17 @@ func (rts *RouteSCfg) loadFromJsonCfg(jsnCfg *RouteSJsonCfg) (err error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if jsnCfg.Rates_conns != nil {
|
||||
rts.RateSConns = make([]string, len(*jsnCfg.Rates_conns))
|
||||
for idx, conn := range *jsnCfg.Rates_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.RateSConns[idx] = utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRateS)
|
||||
} else {
|
||||
rts.RateSConns[idx] = conn
|
||||
}
|
||||
}
|
||||
}
|
||||
if jsnCfg.Default_ratio != nil {
|
||||
rts.DefaultRatio = *jsnCfg.Default_ratio
|
||||
}
|
||||
@@ -195,5 +207,16 @@ func (rts *RouteSCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
}
|
||||
initialMP[utils.StatSConnsCfg] = statSConns
|
||||
}
|
||||
if rts.RateSConns != nil {
|
||||
rateSConns := make([]string, len(rts.RateSConns))
|
||||
for i, item := range rts.RateSConns {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRateS) {
|
||||
rateSConns[i] = strings.TrimSuffix(item, utils.CONCATENATED_KEY_SEP+utils.MetaRateS)
|
||||
} else {
|
||||
rateSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.RateSConnsCfg] = rateSConns
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -31,10 +31,11 @@ func TestRouteSCfgloadFromJsonCfg(t *testing.T) {
|
||||
String_indexed_fields: &[]string{"*req.index1"},
|
||||
Prefix_indexed_fields: &[]string{"*req.index1", "*req.index2"},
|
||||
Suffix_indexed_fields: &[]string{"*req.index1", "*req.index2"},
|
||||
Attributes_conns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
Resources_conns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
Stats_conns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
Rals_conns: &[]string{utils.MetaInternal, "*conn1"},
|
||||
Attributes_conns: &[]string{utils.MetaInternal, "conn1"},
|
||||
Resources_conns: &[]string{utils.MetaInternal, "conn1"},
|
||||
Stats_conns: &[]string{utils.MetaInternal, "conn1"},
|
||||
Rals_conns: &[]string{utils.MetaInternal, "conn1"},
|
||||
Rates_conns: &[]string{utils.MetaInternal, "conn1"},
|
||||
Default_ratio: utils.IntPointer(10),
|
||||
Nested_fields: utils.BoolPointer(true),
|
||||
}
|
||||
@@ -44,10 +45,11 @@ func TestRouteSCfgloadFromJsonCfg(t *testing.T) {
|
||||
StringIndexedFields: &[]string{"*req.index1"},
|
||||
PrefixIndexedFields: &[]string{"*req.index1", "*req.index2"},
|
||||
SuffixIndexedFields: &[]string{"*req.index1", "*req.index2"},
|
||||
AttributeSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes), "*conn1"},
|
||||
ResourceSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources), "*conn1"},
|
||||
StatSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS), "*conn1"},
|
||||
RALsConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder), "*conn1"},
|
||||
AttributeSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes), "conn1"},
|
||||
ResourceSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources), "conn1"},
|
||||
StatSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS), "conn1"},
|
||||
RALsConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder), "conn1"},
|
||||
RateSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRateS), "conn1"},
|
||||
DefaultRatio: 10,
|
||||
NestedFields: true,
|
||||
}
|
||||
@@ -74,6 +76,7 @@ func TestRouteSCfgAsMapInterface(t *testing.T) {
|
||||
utils.ResourceSConnsCfg: []string{},
|
||||
utils.StatSConnsCfg: []string{},
|
||||
utils.RALsConnsCfg: []string{},
|
||||
utils.RateSConnsCfg: []string{},
|
||||
utils.DefaultRatioCfg: 1,
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
|
||||
@@ -92,10 +95,11 @@ func TestRouteSCfgAsMapInterface1(t *testing.T) {
|
||||
"prefix_indexed_fields": ["*req.prefix","*req.indexed","*req.fields"],
|
||||
"suffix_indexed_fields": ["*req.prefix","*req.indexed"],
|
||||
"nested_fields": true,
|
||||
"attributes_conns": ["*internal:*attributes", "*conn1"],
|
||||
"resources_conns": ["*internal:*resources", "*conn1"],
|
||||
"stats_conns": ["*internal:*stats", "*conn1"],
|
||||
"rals_conns": ["*internal:*responder", "*conn1"],
|
||||
"attributes_conns": ["*internal:*attributes", "conn1"],
|
||||
"resources_conns": ["*internal:*resources", "conn1"],
|
||||
"stats_conns": ["*internal:*stats", "conn1"],
|
||||
"rals_conns": ["*internal:*responder", "conn1"],
|
||||
"rates_conns": ["*internal:*rates", "conn1"],
|
||||
"default_ratio":2,
|
||||
},
|
||||
}`
|
||||
@@ -106,10 +110,11 @@ func TestRouteSCfgAsMapInterface1(t *testing.T) {
|
||||
utils.PrefixIndexedFieldsCfg: []string{"*req.prefix", "*req.indexed", "*req.fields"},
|
||||
utils.SuffixIndexedFieldsCfg: []string{"*req.prefix", "*req.indexed"},
|
||||
utils.NestedFieldsCfg: true,
|
||||
utils.AttributeSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.ResourceSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.StatSConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.RALsConnsCfg: []string{utils.MetaInternal, "*conn1"},
|
||||
utils.AttributeSConnsCfg: []string{utils.MetaInternal, "conn1"},
|
||||
utils.ResourceSConnsCfg: []string{utils.MetaInternal, "conn1"},
|
||||
utils.StatSConnsCfg: []string{utils.MetaInternal, "conn1"},
|
||||
utils.RALsConnsCfg: []string{utils.MetaInternal, "conn1"},
|
||||
utils.RateSConnsCfg: []string{utils.MetaInternal, "conn1"},
|
||||
utils.DefaultRatioCfg: 2,
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJSONStringWithDefaults(cfgJSONStr); err != nil {
|
||||
|
||||
@@ -2039,6 +2039,7 @@ const (
|
||||
RetransmissionTimerCfg = "retransmission_timer"
|
||||
OnlineCDRExportsCfg = "online_cdr_exports"
|
||||
SessionCostRetires = "session_cost_retries"
|
||||
RateSConnsCfg = "rates_conns"
|
||||
)
|
||||
|
||||
// SessionSCfg
|
||||
|
||||
Reference in New Issue
Block a user