diff --git a/apier/v2/apier.go b/apier/v2/apier.go index a50ac3ea2..0d63df5ae 100644 --- a/apier/v2/apier.go +++ b/apier/v2/apier.go @@ -284,38 +284,38 @@ func (apiv2 *APIerSv2) SetActions(attrs *utils.AttrSetActions, reply *string) er for idx, apiAct := range attrs.Actions { var vf *utils.ValueFormula if apiAct.Units != "" { - if x, err := utils.ParseBalanceFilterValue(apiAct.BalanceType, apiAct.Units); err == nil { - vf = x - } else { + x, err := utils.ParseBalanceFilterValue(apiAct.BalanceType, apiAct.Units) + if err != nil { return err } + vf = x } var weight *float64 if apiAct.BalanceWeight != "" { - if x, err := strconv.ParseFloat(apiAct.BalanceWeight, 64); err == nil { - weight = &x - } else { + x, err := strconv.ParseFloat(apiAct.BalanceWeight, 64) + if err != nil { return err } + weight = &x } var blocker *bool if apiAct.BalanceBlocker != "" { - if x, err := strconv.ParseBool(apiAct.BalanceBlocker); err == nil { - blocker = &x - } else { + x, err := strconv.ParseBool(apiAct.BalanceBlocker) + if err != nil { return err } + blocker = &x } var disabled *bool if apiAct.BalanceDisabled != "" { - if x, err := strconv.ParseBool(apiAct.BalanceDisabled); err == nil { - disabled = &x - } else { + x, err := strconv.ParseBool(apiAct.BalanceDisabled) + if err != nil { return err } + disabled = &x } a := &engine.Action{ diff --git a/engine/z_actions2_it_test.go b/engine/z_actions2_it_test.go index 900a897d8..69d973b6d 100644 --- a/engine/z_actions2_it_test.go +++ b/engine/z_actions2_it_test.go @@ -183,7 +183,7 @@ func testActionsExecuteRemoveSMCos1(t *testing.T) { { Identifier: utils.MetaRemoveSessionCosts, TimingTags: utils.ASAP, - ExtraParameters: "*string:~OriginID:13;*notstring:~OriginID:12", + ExtraParameters: "*string:~*sc.OriginID:13;*notstring:~*sc.OriginID:12", Weight: 20, }, }, diff --git a/utils/apitpdata.go b/utils/apitpdata.go index 327486fec..56979e50b 100755 --- a/utils/apitpdata.go +++ b/utils/apitpdata.go @@ -1204,7 +1204,7 @@ type SMCostFilter struct { //id cu litere mare func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, values []string, timezone string) (smcf *SMCostFilter, err error) { switch fieldName { - case DynamicDataPrefix + CGRID: + case MetaScPrefix + CGRID: switch fieldType { case MetaString: smcFilter.CGRIDs = append(smcFilter.CGRIDs, values...) @@ -1213,7 +1213,7 @@ func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, default: err = fmt.Errorf("FilterType: %q not supported for FieldName: %q", fieldType, fieldName) } - case DynamicDataPrefix + RunID: + case MetaScPrefix + RunID: switch fieldType { case MetaString: smcFilter.RunIDs = append(smcFilter.RunIDs, values...) @@ -1222,7 +1222,7 @@ func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, default: err = fmt.Errorf("FilterType: %q not supported for FieldName: %q", fieldType, fieldName) } - case DynamicDataPrefix + OriginHost: + case MetaScPrefix + OriginHost: switch fieldType { case MetaString: smcFilter.OriginHosts = append(smcFilter.OriginHosts, values...) @@ -1231,7 +1231,7 @@ func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, default: err = fmt.Errorf("FilterType: %q not supported for FieldName: %q", fieldType, fieldName) } - case DynamicDataPrefix + OriginID: + case MetaScPrefix + OriginID: switch fieldType { case MetaString: smcFilter.OriginIDs = append(smcFilter.OriginIDs, values...) @@ -1240,7 +1240,7 @@ func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, default: err = fmt.Errorf("FilterType: %q not supported for FieldName: %q", fieldType, fieldName) } - case DynamicDataPrefix + CostSource: + case MetaScPrefix + CostSource: switch fieldType { case MetaString: smcFilter.CostSources = append(smcFilter.CostSources, values...) @@ -1249,7 +1249,7 @@ func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, default: err = fmt.Errorf("FilterType: %q not supported for FieldName: %q", fieldType, fieldName) } - case DynamicDataPrefix + Usage: + case MetaScPrefix + Usage: switch fieldType { case MetaGreaterOrEqual: var minUsage time.Duration @@ -1270,7 +1270,7 @@ func AppendToSMCostFilter(smcFilter *SMCostFilter, fieldType, fieldName string, default: err = fmt.Errorf("FilterType: %q not supported for FieldName: %q", fieldType, fieldName) } - case DynamicDataPrefix + CreatedAt: + case MetaScPrefix + CreatedAt: switch fieldType { case MetaGreaterOrEqual: var start time.Time diff --git a/utils/apitpdata_test.go b/utils/apitpdata_test.go index e70e0e3eb..af8440e3f 100644 --- a/utils/apitpdata_test.go +++ b/utils/apitpdata_test.go @@ -797,96 +797,96 @@ func TestAppendToSMCostFilter(t *testing.T) { expected := &SMCostFilter{ CGRIDs: []string{"CGRID1", "CGRID2"}, } - if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, DynamicDataPrefix+CGRID, []string{"CGRID1", "CGRID2"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, MetaScPrefix+CGRID, []string{"CGRID1", "CGRID2"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.NotCGRIDs = []string{"CGRID3", "CGRID4"} - if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", DynamicDataPrefix+CGRID, []string{"CGRID3", "CGRID4"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", MetaScPrefix+CGRID, []string{"CGRID3", "CGRID4"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.RunIDs = []string{"RunID1", "RunID2"} - if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, DynamicDataPrefix+RunID, []string{"RunID1", "RunID2"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, MetaScPrefix+RunID, []string{"RunID1", "RunID2"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.NotRunIDs = []string{"RunID3", "RunID4"} - if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", DynamicDataPrefix+RunID, []string{"RunID3", "RunID4"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", MetaScPrefix+RunID, []string{"RunID3", "RunID4"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.OriginHosts = []string{"OriginHost1", "OriginHost2"} - if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, DynamicDataPrefix+OriginHost, []string{"OriginHost1", "OriginHost2"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, MetaScPrefix+OriginHost, []string{"OriginHost1", "OriginHost2"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.NotOriginHosts = []string{"OriginHost3", "OriginHost4"} - if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", DynamicDataPrefix+OriginHost, []string{"OriginHost3", "OriginHost4"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", MetaScPrefix+OriginHost, []string{"OriginHost3", "OriginHost4"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.OriginIDs = []string{"OriginID1", "OriginID2"} - if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, DynamicDataPrefix+OriginID, []string{"OriginID1", "OriginID2"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, MetaScPrefix+OriginID, []string{"OriginID1", "OriginID2"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.NotOriginIDs = []string{"OriginID3", "OriginID4"} - if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", DynamicDataPrefix+OriginID, []string{"OriginID3", "OriginID4"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", MetaScPrefix+OriginID, []string{"OriginID3", "OriginID4"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.CostSources = []string{"CostSource1", "CostSource2"} - if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, DynamicDataPrefix+CostSource, []string{"CostSource1", "CostSource2"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, MetaString, MetaScPrefix+CostSource, []string{"CostSource1", "CostSource2"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.NotCostSources = []string{"CostSource3", "CostSource4"} - if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", DynamicDataPrefix+CostSource, []string{"CostSource3", "CostSource4"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*notstring", MetaScPrefix+CostSource, []string{"CostSource3", "CostSource4"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+CGRID, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~CGRID\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~CGRID\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+CGRID, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.CGRID\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.CGRID\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+RunID, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~RunID\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~RunID\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+RunID, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.RunID\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.RunID\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+OriginHost, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~OriginHost\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~OriginHost\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+OriginHost, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.OriginHost\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.OriginHost\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+OriginID, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~OriginID\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~OriginID\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+OriginID, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.OriginID\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.OriginID\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+CostSource, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~CostSource\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~CostSource\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+CostSource, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.CostSource\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.CostSource\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) @@ -905,33 +905,33 @@ func TestAppendToSMCostFilter(t *testing.T) { } expected.Usage.Min = DurationPointer(time.Second) - if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", DynamicDataPrefix+Usage, []string{"1s", "2s"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", MetaScPrefix+Usage, []string{"1s", "2s"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.Usage.Max = DurationPointer(3 * time.Second) - if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", DynamicDataPrefix+Usage, []string{"3s", "4s"}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", MetaScPrefix+Usage, []string{"3s", "4s"}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", DynamicDataPrefix+Usage, []string{"one second"}, ""); err == nil || err.Error() != "Error when converting field: \"*gte\" value: \"~Usage\" in time.Duration " { - t.Errorf("Expected error: Error when converting field: \"*gte\" value: \"~Usage\" in time.Duration ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", MetaScPrefix+Usage, []string{"one second"}, ""); err == nil || err.Error() != "Error when converting field: \"*gte\" value: \"~*sc.Usage\" in time.Duration " { + t.Errorf("Expected error: Error when converting field: \"*gte\" value: \"~*sc.Usage\" in time.Duration ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", DynamicDataPrefix+Usage, []string{"one second"}, ""); err == nil || err.Error() != "Error when converting field: \"*lt\" value: \"~Usage\" in time.Duration " { - t.Errorf("Expected error: Error when converting field: \"*lt\" value: \"~Usage\" in time.Duration ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", MetaScPrefix+Usage, []string{"one second"}, ""); err == nil || err.Error() != "Error when converting field: \"*lt\" value: \"~*sc.Usage\" in time.Duration " { + t.Errorf("Expected error: Error when converting field: \"*lt\" value: \"~*sc.Usage\" in time.Duration ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+Usage, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~Usage\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~Usage\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+Usage, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.Usage\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.Usage\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) @@ -941,33 +941,33 @@ func TestAppendToSMCostFilter(t *testing.T) { strNow := now.Format("2006-01-02T15:04:05") expected.CreatedAt.Begin = &now - if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", DynamicDataPrefix+CreatedAt, []string{strNow}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", MetaScPrefix+CreatedAt, []string{strNow}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } expected.CreatedAt.End = &now - if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", DynamicDataPrefix+CreatedAt, []string{strNow}, ""); err != nil { + if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", MetaScPrefix+CreatedAt, []string{strNow}, ""); err != nil { t.Error(err) } else if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", DynamicDataPrefix+CreatedAt, []string{time.Now().String()}, ""); err == nil || err.Error() != "Error when converting field: \"*gte\" value: \"~CreatedAt\" in time.Time " { - t.Errorf("Expected error: Error when converting field: \"*gte\" value: \"~CreatedAt\" in time.Time ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*gte", MetaScPrefix+CreatedAt, []string{time.Now().String()}, ""); err == nil || err.Error() != "Error when converting field: \"*gte\" value: \"~*sc.CreatedAt\" in time.Time " { + t.Errorf("Expected error: Error when converting field: \"*gte\" value: \"~*sc.CreatedAt\" in time.Time ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", DynamicDataPrefix+CreatedAt, []string{time.Now().String()}, ""); err == nil || err.Error() != "Error when converting field: \"*lt\" value: \"~CreatedAt\" in time.Time " { - t.Errorf("Expected error: Error when converting field: \"*lt\" value: \"~CreatedAt\" in time.Time ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*lt", MetaScPrefix+CreatedAt, []string{time.Now().String()}, ""); err == nil || err.Error() != "Error when converting field: \"*lt\" value: \"~*sc.CreatedAt\" in time.Time " { + t.Errorf("Expected error: Error when converting field: \"*lt\" value: \"~*sc.CreatedAt\" in time.Time ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) } - if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", DynamicDataPrefix+CreatedAt, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~CreatedAt\"" { - t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~CreatedAt\" ,received %v", err) + if smfltr, err = AppendToSMCostFilter(smfltr, "*prefix", MetaScPrefix+CreatedAt, []string{"CGRID1", "CGRID2"}, ""); err == nil || err.Error() != "FilterType: \"*prefix\" not supported for FieldName: \"~*sc.CreatedAt\"" { + t.Errorf("Expected error: FilterType: \"*prefix\" not supported for FieldName: \"~*sc.CreatedAt\" ,received %v", err) } if !reflect.DeepEqual(smfltr, expected) { t.Errorf("Expected: %s ,received: %s ", ToJSON(expected), ToJSON(smfltr)) diff --git a/utils/consts.go b/utils/consts.go index 2cf3e3af4..1790524c1 100755 --- a/utils/consts.go +++ b/utils/consts.go @@ -622,6 +622,7 @@ const ( MetaTrl = "*trl" MetaTmp = "*tmp" MetaOpts = "*opts" + MetaScPrefix = "~*sc." // used for SMCostFilter CGROriginHost = "cgr_originhost" MetaInitiate = "*initiate" MetaUpdate = "*update"