mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-19 22:28:45 +05:00
Fixed the config for loaders
This commit is contained in:
committed by
Dan Christian Bogos
parent
fd5cf12eac
commit
6a3c682f42
@@ -98,7 +98,7 @@ func (aP *ActionProfile) Set(path []string, val interface{}, newBranch bool, _ s
|
||||
path[0][7] == '[' && path[0][len(path[0])-1] == ']' {
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
aP.Targets[path[0][8:len(path[0])-1]] = utils.NewStringSet(valA)
|
||||
aP.Targets[path[0][8:len(path[0])-1]] = utils.JoinStringSet(aP.Targets[path[0][8:len(path[0])-1]], utils.NewStringSet(valA))
|
||||
return
|
||||
}
|
||||
return utils.ErrWrongPath
|
||||
@@ -109,16 +109,20 @@ func (aP *ActionProfile) Set(path []string, val interface{}, newBranch bool, _ s
|
||||
case utils.Schedule:
|
||||
aP.Schedule = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
aP.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
aP.FilterIDs = append(aP.FilterIDs, valA...)
|
||||
case utils.Weight:
|
||||
aP.Weight, err = utils.IfaceAsFloat64(val)
|
||||
if val != utils.EmptyString {
|
||||
aP.Weight, err = utils.IfaceAsFloat64(val)
|
||||
}
|
||||
}
|
||||
return
|
||||
case 2:
|
||||
if path[0] == utils.Targets {
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
aP.Targets[path[1]] = utils.NewStringSet(valA)
|
||||
aP.Targets[path[1]] = utils.JoinStringSet(aP.Targets[path[1]], utils.NewStringSet(valA))
|
||||
return
|
||||
}
|
||||
default:
|
||||
@@ -173,11 +177,15 @@ func (aP *APAction) Set(path []string, val interface{}, newBranch bool) (err err
|
||||
case utils.Type:
|
||||
aP.Type = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
aP.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
aP.FilterIDs = append(aP.FilterIDs, valA...)
|
||||
case utils.Blocker:
|
||||
aP.Blocker, err = utils.IfaceAsBool(val)
|
||||
case utils.TTL:
|
||||
aP.TTL, err = utils.IfaceAsDuration(val)
|
||||
case utils.Opts:
|
||||
aP.Opts, err = utils.NewMapFromCSV(utils.IfaceAsString(val))
|
||||
}
|
||||
case 2:
|
||||
switch path[0] {
|
||||
|
||||
@@ -207,11 +207,15 @@ func (dP *DispatcherProfile) Set(path []string, val interface{}, newBranch bool,
|
||||
case utils.ID:
|
||||
dP.ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
dP.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
dP.FilterIDs = append(dP.FilterIDs, valA...)
|
||||
case utils.Strategy:
|
||||
dP.Strategy = utils.IfaceAsString(val)
|
||||
case utils.Weight:
|
||||
dP.Weight, err = utils.IfaceAsFloat64(val)
|
||||
case utils.StrategyParams:
|
||||
dP.StrategyParams, err = utils.NewMapFromCSV(utils.IfaceAsString(val))
|
||||
}
|
||||
case 2:
|
||||
switch path[0] {
|
||||
@@ -227,11 +231,15 @@ func (dP *DispatcherProfile) Set(path []string, val interface{}, newBranch bool,
|
||||
case utils.ID:
|
||||
dP.Hosts[len(dP.Hosts)-1].ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
dP.Hosts[len(dP.Hosts)-1].FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
case utils.Weights:
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
dP.Hosts[len(dP.Hosts)-1].FilterIDs = append(dP.Hosts[len(dP.Hosts)-1].FilterIDs, valA...)
|
||||
case utils.Weight:
|
||||
dP.Hosts[len(dP.Hosts)-1].Weight, err = utils.IfaceAsFloat64(val)
|
||||
case utils.Blocker:
|
||||
dP.Hosts[len(dP.Hosts)-1].Blocker, err = utils.IfaceAsBool(val)
|
||||
case utils.Params:
|
||||
dP.Hosts[len(dP.Hosts)-1].Params, err = utils.NewMapFromCSV(utils.IfaceAsString(val))
|
||||
default:
|
||||
if strings.HasPrefix(path[0], utils.Params) &&
|
||||
path[0][6] == '[' && path[0][len(path[0])-1] == ']' {
|
||||
|
||||
@@ -722,3 +722,17 @@ func (fltr *Filter) Set(path []string, val interface{}, newBranch bool, _ string
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (fltr *Filter) Compress() {
|
||||
newRules := make([]*FilterRule, 0, len(fltr.Rules))
|
||||
for i, flt := range fltr.Rules {
|
||||
if i == 0 ||
|
||||
newRules[len(newRules)-1].Type != flt.Type ||
|
||||
newRules[len(newRules)-1].Element != flt.Element {
|
||||
newRules = append(newRules, flt)
|
||||
continue
|
||||
}
|
||||
newRules[len(newRules)-1].Values = append(newRules[len(newRules)-1].Values, flt.Values...)
|
||||
}
|
||||
fltr.Rules = newRules
|
||||
}
|
||||
|
||||
@@ -196,11 +196,15 @@ func (ap *AttributeProfile) Set(path []string, val interface{}, newBranch bool,
|
||||
case utils.ID:
|
||||
ap.ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
ap.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
ap.FilterIDs = append(ap.FilterIDs, valA...)
|
||||
case utils.Blocker:
|
||||
ap.Blocker, err = utils.IfaceAsBool(val)
|
||||
case utils.Weight:
|
||||
ap.Weight, err = utils.IfaceAsFloat64(val)
|
||||
if val != utils.EmptyString {
|
||||
ap.Weight, err = utils.IfaceAsFloat64(val)
|
||||
}
|
||||
default:
|
||||
return utils.ErrWrongPath
|
||||
}
|
||||
@@ -213,7 +217,9 @@ func (ap *AttributeProfile) Set(path []string, val interface{}, newBranch bool,
|
||||
}
|
||||
switch path[1] {
|
||||
case utils.FilterIDs:
|
||||
ap.Attributes[len(ap.Attributes)-1].FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
ap.Attributes[len(ap.Attributes)-1].FilterIDs = append(ap.Attributes[len(ap.Attributes)-1].FilterIDs, valA...)
|
||||
case utils.Path:
|
||||
ap.Attributes[len(ap.Attributes)-1].Path = utils.IfaceAsString(val)
|
||||
case utils.Type:
|
||||
|
||||
@@ -64,11 +64,15 @@ func (cp *ChargerProfile) Set(path []string, val interface{}, newBranch bool, _
|
||||
case utils.ID:
|
||||
cp.ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
cp.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
cp.FilterIDs = append(cp.FilterIDs, valA...)
|
||||
case utils.RunID:
|
||||
cp.RunID = utils.IfaceAsString(val)
|
||||
case utils.AttributeIDs:
|
||||
cp.AttributeIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
cp.AttributeIDs = append(cp.AttributeIDs, valA...)
|
||||
case utils.Weight:
|
||||
cp.Weight, err = utils.IfaceAsFloat64(val)
|
||||
}
|
||||
|
||||
@@ -566,9 +566,13 @@ func (sqp *StatQueueProfile) Set(path []string, val interface{}, newBranch bool,
|
||||
case utils.Weight:
|
||||
sqp.Weight, err = utils.IfaceAsFloat64(val)
|
||||
case utils.FilterIDs:
|
||||
sqp.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
sqp.FilterIDs = append(sqp.FilterIDs, valA...)
|
||||
case utils.ThresholdIDs:
|
||||
sqp.ThresholdIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
sqp.ThresholdIDs = append(sqp.ThresholdIDs, valA...)
|
||||
}
|
||||
case 2:
|
||||
if path[0] != utils.Metrics {
|
||||
@@ -579,9 +583,15 @@ func (sqp *StatQueueProfile) Set(path []string, val interface{}, newBranch bool,
|
||||
}
|
||||
switch path[1] {
|
||||
case utils.FilterIDs:
|
||||
sqp.Metrics[len(sqp.Metrics)-1].FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
sqp.Metrics[len(sqp.Metrics)-1].FilterIDs = append(sqp.Metrics[len(sqp.Metrics)-1].FilterIDs, valA...)
|
||||
case utils.MetricID:
|
||||
sqp.Metrics[len(sqp.Metrics)-1].MetricID = utils.IfaceAsString(val)
|
||||
valA := utils.InfieldSplit(utils.IfaceAsString(val))
|
||||
sqp.Metrics[len(sqp.Metrics)-1].MetricID = valA[0]
|
||||
for _, mID := range valA[1:] { // add the rest of the metrics
|
||||
sqp.Metrics = append(sqp.Metrics, &MetricWithFilters{MetricID: mID})
|
||||
}
|
||||
default:
|
||||
return utils.ErrWrongPath
|
||||
}
|
||||
|
||||
@@ -1032,7 +1032,9 @@ func (rp *ResourceProfile) Set(path []string, val interface{}, _ bool, _ string)
|
||||
case utils.ID:
|
||||
rp.ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
rp.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rp.FilterIDs = append(rp.FilterIDs, valA...)
|
||||
case utils.UsageTTL:
|
||||
rp.UsageTTL, err = utils.IfaceAsDuration(val)
|
||||
case utils.Limit:
|
||||
@@ -1046,7 +1048,9 @@ func (rp *ResourceProfile) Set(path []string, val interface{}, _ bool, _ string)
|
||||
case utils.Weight:
|
||||
rp.Weight, err = utils.IfaceAsFloat64(val)
|
||||
case utils.ThresholdIDs:
|
||||
rp.ThresholdIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rp.ThresholdIDs = append(rp.ThresholdIDs, valA...)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -466,9 +466,13 @@ func (rp *RouteProfile) Set(path []string, val interface{}, newBranch bool, _ st
|
||||
case utils.ID:
|
||||
rp.ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
rp.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rp.FilterIDs = append(rp.FilterIDs, valA...)
|
||||
case utils.SortingParameters:
|
||||
rp.SortingParameters, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rp.SortingParameters = append(rp.SortingParameters, valA...)
|
||||
case utils.Sorting:
|
||||
rp.Sorting = utils.IfaceAsString(val)
|
||||
case utils.Weights:
|
||||
@@ -481,25 +485,36 @@ func (rp *RouteProfile) Set(path []string, val interface{}, newBranch bool, _ st
|
||||
if len(rp.Routes) == 0 || newBranch {
|
||||
rp.Routes = append(rp.Routes, new(Route))
|
||||
}
|
||||
rt := rp.Routes[len(rp.Routes)-1]
|
||||
switch path[1] {
|
||||
case utils.ID:
|
||||
rp.Routes[len(rp.Routes)-1].ID = utils.IfaceAsString(val)
|
||||
rt.ID = utils.IfaceAsString(val)
|
||||
case utils.FilterIDs:
|
||||
rp.Routes[len(rp.Routes)-1].FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rt.FilterIDs = append(rt.FilterIDs, valA...)
|
||||
case utils.AccountIDs:
|
||||
rp.Routes[len(rp.Routes)-1].AccountIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rt.AccountIDs = append(rt.AccountIDs, valA...)
|
||||
case utils.RateProfileIDs:
|
||||
rp.Routes[len(rp.Routes)-1].RateProfileIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rt.RateProfileIDs = append(rt.RateProfileIDs, valA...)
|
||||
case utils.ResourceIDs:
|
||||
rp.Routes[len(rp.Routes)-1].ResourceIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rt.ResourceIDs = append(rt.ResourceIDs, valA...)
|
||||
case utils.StatIDs:
|
||||
rp.Routes[len(rp.Routes)-1].StatIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
rt.StatIDs = append(rt.StatIDs, valA...)
|
||||
case utils.Weights:
|
||||
rp.Routes[len(rp.Routes)-1].Weights, err = utils.NewDynamicWeightsFromString(utils.IfaceAsString(val), utils.InfieldSep, utils.ANDSep)
|
||||
rt.Weights, err = utils.NewDynamicWeightsFromString(utils.IfaceAsString(val), utils.InfieldSep, utils.ANDSep)
|
||||
case utils.Blocker:
|
||||
rp.Routes[len(rp.Routes)-1].Blocker, err = utils.IfaceAsBool(val)
|
||||
rt.Blocker, err = utils.IfaceAsBool(val)
|
||||
case utils.RouteParameters:
|
||||
rp.Routes[len(rp.Routes)-1].RouteParameters = utils.IfaceAsString(val)
|
||||
rt.RouteParameters = utils.IfaceAsString(val)
|
||||
default:
|
||||
return utils.ErrWrongPath
|
||||
}
|
||||
|
||||
@@ -607,7 +607,9 @@ func (tp *ThresholdProfile) Set(path []string, val interface{}, _ bool, _ string
|
||||
case utils.Weight:
|
||||
tp.Weight, err = utils.IfaceAsFloat64(val)
|
||||
case utils.FilterIDs:
|
||||
tp.FilterIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
tp.FilterIDs = append(tp.FilterIDs, valA...)
|
||||
case utils.MaxHits:
|
||||
tp.MaxHits, err = utils.IfaceAsTInt(val)
|
||||
case utils.MinHits:
|
||||
@@ -615,7 +617,9 @@ func (tp *ThresholdProfile) Set(path []string, val interface{}, _ bool, _ string
|
||||
case utils.MinSleep:
|
||||
tp.MinSleep, err = utils.IfaceAsDuration(val)
|
||||
case utils.ActionProfileIDs:
|
||||
tp.ActionProfileIDs, err = utils.IfaceAsStringSlice(val)
|
||||
var valA []string
|
||||
valA, err = utils.IfaceAsStringSlice(val)
|
||||
tp.ActionProfileIDs = append(tp.ActionProfileIDs, valA...)
|
||||
case utils.Async:
|
||||
tp.Async, err = utils.IfaceAsBool(val)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user