mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-12 18:46:24 +05:00
Remove ActivationInterval for Attributes
This commit is contained in:
committed by
Dan Christian Bogos
parent
3d17faaaa9
commit
e0d77a4b8a
@@ -1557,7 +1557,7 @@ func TestModelAsTPAttribute2(t *testing.T) {
|
||||
Tenant: "cgrates.org",
|
||||
ID: "ALS1",
|
||||
Contexts: "con1",
|
||||
FilterIDs: "FLTR_ACNT_dan;FLTR_DST_DE;*ai:~*req.AnswerTime:2014-07-14T14:35:00Z;2014-07-14T14:36:00Z",
|
||||
FilterIDs: "FLTR_ACNT_dan;FLTR_DST_DE;*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z",
|
||||
Path: utils.MetaReq + utils.NestingSep + "FL1",
|
||||
Value: "Al1",
|
||||
Weight: 20,
|
||||
@@ -1568,7 +1568,7 @@ func TestModelAsTPAttribute2(t *testing.T) {
|
||||
Tenant: "cgrates.org",
|
||||
ID: "ALS1",
|
||||
Contexts: []string{"con1"},
|
||||
FilterIDs: []string{"*ai:~*req.AnswerTime:2014-07-14T14:35:00Z;2014-07-14T14:36:00Z", "FLTR_ACNT_dan", "FLTR_DST_DE"},
|
||||
FilterIDs: []string{"*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z", "FLTR_ACNT_dan", "FLTR_DST_DE"},
|
||||
Attributes: []*utils.TPAttribute{
|
||||
{
|
||||
FilterIDs: []string{},
|
||||
|
||||
@@ -485,7 +485,7 @@ func TestAttributeProcessWithMultipleRuns1(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -498,7 +498,7 @@ func TestAttributeProcessWithMultipleRuns1(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -511,7 +511,7 @@ func TestAttributeProcessWithMultipleRuns1(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_3",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field3",
|
||||
@@ -589,7 +589,7 @@ func TestAttributeProcessWithMultipleRuns2(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -602,7 +602,7 @@ func TestAttributeProcessWithMultipleRuns2(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -615,7 +615,7 @@ func TestAttributeProcessWithMultipleRuns2(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_3",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.NotFound:NotFound", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.NotFound:NotFound", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field3",
|
||||
@@ -689,7 +689,7 @@ func TestAttributeProcessWithMultipleRuns3(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -702,7 +702,7 @@ func TestAttributeProcessWithMultipleRuns3(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -715,7 +715,7 @@ func TestAttributeProcessWithMultipleRuns3(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_3",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field3",
|
||||
@@ -789,7 +789,7 @@ func TestAttributeProcessWithMultipleRuns4(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -802,7 +802,7 @@ func TestAttributeProcessWithMultipleRuns4(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -875,7 +875,7 @@ func TestAttributeMultipleProcessWithBlocker(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -888,7 +888,7 @@ func TestAttributeMultipleProcessWithBlocker(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -902,7 +902,7 @@ func TestAttributeMultipleProcessWithBlocker(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_3",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field3",
|
||||
@@ -977,7 +977,7 @@ func TestAttributeMultipleProcessWithBlocker2(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.InitialField:InitialValue", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -991,7 +991,7 @@ func TestAttributeMultipleProcessWithBlocker2(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1004,7 +1004,7 @@ func TestAttributeMultipleProcessWithBlocker2(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_3",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field2:Value2", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field3",
|
||||
@@ -1076,7 +1076,7 @@ func TestAttributeProcessValue(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1221,7 +1221,7 @@ func TestAttributeProcessEventConstant(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1289,7 +1289,7 @@ func TestAttributeProcessEventVariable(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1364,7 +1364,7 @@ func TestAttributeProcessEventComposed(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1444,7 +1444,7 @@ func TestAttributeProcessEventSum(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1516,7 +1516,7 @@ func TestAttributeProcessEventUsageDifference(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1590,7 +1590,7 @@ func TestAttributeProcessEventValueExponent(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1669,7 +1669,7 @@ func BenchmarkAttributeProcessEventConstant(b *testing.B) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -1725,7 +1725,7 @@ func BenchmarkAttributeProcessEventVariable(b *testing.B) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*string:~*req.Field1:Value1", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -2673,7 +2673,7 @@ func TestAttributeMultipleProcessWithFiltersExists(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1_EXISTS",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*exists:~*req.InitialField:", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*exists:~*req.InitialField:", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -2686,7 +2686,7 @@ func TestAttributeMultipleProcessWithFiltersExists(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2_EXISTS",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*exists:~*req.Field1:", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*exists:~*req.Field1:", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
@@ -2761,7 +2761,7 @@ func TestAttributeMultipleProcessWithFiltersNotEmpty(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_1_NOTEMPTY",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*notempty:~*req.InitialField:", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*notempty:~*req.InitialField:", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field1",
|
||||
@@ -2774,7 +2774,7 @@ func TestAttributeMultipleProcessWithFiltersNotEmpty(t *testing.T) {
|
||||
Tenant: config.CgrConfig().GeneralCfg().DefaultTenant,
|
||||
ID: "ATTR_2_NOTEMPTY",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"*notempty:~*req.Field1:", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
|
||||
FilterIDs: []string{"*notempty:~*req.Field1:", "*ai:*now:2014-07-14T14:25:00Z"},
|
||||
Attributes: []*Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "Field2",
|
||||
|
||||
@@ -2871,40 +2871,6 @@ true
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoaderAttributesAsStructErrConversion(t *testing.T) {
|
||||
data := engine.NewInternalDB(nil, nil, true)
|
||||
ldr := &Loader{
|
||||
ldrID: "TestLoaderAttributesAsStructErrConversion",
|
||||
bufLoaderData: map[string][]LoaderData{},
|
||||
dm: engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil),
|
||||
timezone: "UTC",
|
||||
}
|
||||
ldr.dataTpls = map[string][]*config.FCTemplate{
|
||||
utils.MetaAttributes: {
|
||||
{Tag: "ActivationInterval",
|
||||
Path: "ActivationInterval",
|
||||
Type: utils.MetaComposed,
|
||||
Value: config.NewRSRParsersMustCompile("~*req.0", utils.InfieldSep)},
|
||||
},
|
||||
}
|
||||
attributeCsv := `
|
||||
#ActivationInterval
|
||||
* * * * * *
|
||||
`
|
||||
rdr := io.NopCloser(strings.NewReader(attributeCsv))
|
||||
csvRdr := csv.NewReader(rdr)
|
||||
csvRdr.Comment = '#'
|
||||
ldr.rdrs = map[string]map[string]*openedCSVFile{
|
||||
utils.MetaAttributes: {
|
||||
utils.AttributesCsv: &openedCSVFile{fileName: utils.AttributesCsv,
|
||||
rdr: rdr, csvRdr: csvRdr}},
|
||||
}
|
||||
expectedErr := "Unsupported time format"
|
||||
if err := ldr.processContent(utils.MetaAttributes, utils.EmptyString); err == nil || err.Error() != expectedErr {
|
||||
t.Errorf("Expected %+v, received %+v", expectedErr, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadResourcesAsStructErrType(t *testing.T) {
|
||||
data := engine.NewInternalDB(nil, nil, true)
|
||||
ldr := &Loader{
|
||||
|
||||
@@ -316,7 +316,7 @@ func (v2AttrPrf v2AttributeProfile) AsAttributeProfile() (attrPrf *v3AttributePr
|
||||
for _, attr := range v2AttrPrf.Attributes {
|
||||
filterIDs := make([]string, 0)
|
||||
//append false translate to if FieldName exist do stuff
|
||||
if attr.Append == false {
|
||||
if !attr.Append {
|
||||
filterIDs = append(filterIDs, utils.MetaExists+utils.InInFieldSep+attr.FieldName+utils.InInFieldSep)
|
||||
}
|
||||
//Initial not *any translate to if value of fieldName = initial do stuff
|
||||
@@ -396,11 +396,12 @@ func (v3AttrPrf v3AttributeProfile) AsAttributeProfile() (attrPrf *v4AttributePr
|
||||
|
||||
func (v4AttrPrf v4AttributeProfile) AsAttributeProfile() (attrPrf *v6AttributeProfile, err error) {
|
||||
attrPrf = &v6AttributeProfile{
|
||||
Tenant: v4AttrPrf.Tenant,
|
||||
ID: v4AttrPrf.ID,
|
||||
Contexts: v4AttrPrf.Contexts,
|
||||
FilterIDs: v4AttrPrf.FilterIDs,
|
||||
Weight: v4AttrPrf.Weight,
|
||||
Tenant: v4AttrPrf.Tenant,
|
||||
ID: v4AttrPrf.ID,
|
||||
Contexts: v4AttrPrf.Contexts,
|
||||
FilterIDs: v4AttrPrf.FilterIDs,
|
||||
Weight: v4AttrPrf.Weight,
|
||||
ActivationInterval: v4AttrPrf.ActivationInterval,
|
||||
}
|
||||
for _, attr := range v4AttrPrf.Attributes { // ToDo:redo this
|
||||
val := attr.Value.GetRule(utils.InfieldSep)
|
||||
@@ -536,16 +537,17 @@ func (m *Migrator) migrateV6ToV7AttributeProfile(v5Attr *v6AttributeProfile) (_
|
||||
}
|
||||
|
||||
if v5Attr.ActivationInterval != nil &&
|
||||
(v5Attr.ActivationInterval.ActivationTime.IsZero() ||
|
||||
v5Attr.ActivationInterval.ExpiryTime.IsZero()) {
|
||||
(!v5Attr.ActivationInterval.ActivationTime.IsZero() ||
|
||||
!v5Attr.ActivationInterval.ExpiryTime.IsZero()) {
|
||||
fltr := "*ai:~*req.AnswerTime:"
|
||||
if v5Attr.ActivationInterval.ActivationTime.IsZero() {
|
||||
if !v5Attr.ActivationInterval.ActivationTime.IsZero() {
|
||||
fltr += v5Attr.ActivationInterval.ActivationTime.Format(time.RFC3339)
|
||||
}
|
||||
fltr += ";"
|
||||
if v5Attr.ActivationInterval.ExpiryTime.IsZero() {
|
||||
fltr += "|"
|
||||
if !v5Attr.ActivationInterval.ExpiryTime.IsZero() {
|
||||
fltr += v5Attr.ActivationInterval.ExpiryTime.Format(time.RFC3339)
|
||||
}
|
||||
v7Attr.FilterIDs = append(v7Attr.FilterIDs, fltr)
|
||||
}
|
||||
|
||||
return v7Attr, nil
|
||||
|
||||
@@ -233,14 +233,17 @@ func TestV4AttributeProfileAsAttributeProfile(t *testing.T) {
|
||||
},
|
||||
Weight: 20,
|
||||
}
|
||||
expTimeStr := cloneExpTime.Format("2006-01-02T15:04:05Z")
|
||||
attrPrf := &engine.AttributeProfile{
|
||||
attrPrf := &v6AttributeProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "attributeprofile1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"filter1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z;" + expTimeStr},
|
||||
Attributes: []*engine.Attribute{
|
||||
&engine.Attribute{
|
||||
FilterIDs: []string{"filter1"},
|
||||
ActivationInterval: &utils.ActivationInterval{
|
||||
ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
|
||||
ExpiryTime: cloneExpTime,
|
||||
},
|
||||
Attributes: []*v6Attribute{
|
||||
&v6Attribute{
|
||||
Path: utils.MetaReq + utils.NestingSep + "FL1",
|
||||
Type: utils.MetaVariable,
|
||||
Value: config.NewRSRParsersMustCompile("~*req.Category:s/(.*)/${1}_UK_Mobile_Vodafone_GBRVF/", utils.InfieldSep),
|
||||
@@ -421,13 +424,17 @@ func TestAsAttributeProfileV5(t *testing.T) {
|
||||
Weight: 20,
|
||||
}
|
||||
|
||||
eOut := &engine.AttributeProfile{
|
||||
eOut := &v6AttributeProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "attributeprofile1",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"filter1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z;2014-04-18T14:26:00Z"},
|
||||
Attributes: []*engine.Attribute{
|
||||
&engine.Attribute{
|
||||
FilterIDs: []string{"filter1"},
|
||||
ActivationInterval: &utils.ActivationInterval{
|
||||
ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
|
||||
ExpiryTime: time.Date(2020, 4, 18, 14, 25, 0, 0, time.UTC),
|
||||
},
|
||||
Attributes: []*v6Attribute{
|
||||
&v6Attribute{
|
||||
FilterIDs: []string{"*string:FL1:In1"},
|
||||
Path: utils.MetaReq + utils.NestingSep + "FL1",
|
||||
Type: utils.MetaVariable,
|
||||
@@ -495,3 +502,74 @@ func TestAsAttributeProfileV1To4(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestAttributesMigrateV6ToV7AttributeProfileNilPrf(t *testing.T) {
|
||||
var v6AttrPrf *v6AttributeProfile
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
dataDB := engine.NewInternalDB(nil, nil, true)
|
||||
dm := engine.NewDataManager(dataDB, cfg.CacheCfg(), nil)
|
||||
m := &Migrator{
|
||||
dmIN: newInternalMigrator(dm),
|
||||
}
|
||||
|
||||
experr := utils.ErrNotImplemented
|
||||
v7AttrPrf, err := m.migrateV6ToV7AttributeProfile(v6AttrPrf)
|
||||
|
||||
if err == nil || err != experr {
|
||||
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err)
|
||||
}
|
||||
|
||||
if v7AttrPrf != nil {
|
||||
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", nil, v7AttrPrf)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAttributesMigrateV6ToV7AttributeProfile2(t *testing.T) {
|
||||
v6Attr := &v6AttributeProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "ATTR_1001_SESSIONAUTH",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"filter1"},
|
||||
ActivationInterval: &utils.ActivationInterval{
|
||||
ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC),
|
||||
ExpiryTime: time.Date(2014, 7, 14, 14, 36, 0, 0, time.UTC),
|
||||
},
|
||||
Attributes: []*v6Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "FL1",
|
||||
Type: utils.MetaVariable,
|
||||
Value: config.NewRSRParsersMustCompile("~*req.Category:s/(.*)/${1}_UK_Mobile_Vodafone_GBRVF/", utils.InfieldSep),
|
||||
},
|
||||
},
|
||||
Weight: 20,
|
||||
}
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
dataDB := engine.NewInternalDB(nil, nil, true)
|
||||
dm := engine.NewDataManager(dataDB, cfg.CacheCfg(), nil)
|
||||
m := &Migrator{
|
||||
dmIN: newInternalMigrator(dm),
|
||||
}
|
||||
|
||||
exp := &engine.AttributeProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "ATTR_1001_SESSIONAUTH",
|
||||
Contexts: []string{utils.MetaSessionS},
|
||||
FilterIDs: []string{"filter1", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
|
||||
Attributes: []*engine.Attribute{
|
||||
{
|
||||
Path: utils.MetaReq + utils.NestingSep + "FL1",
|
||||
Type: utils.MetaVariable,
|
||||
Value: config.NewRSRParsersMustCompile("~*req.Category:s/(.*)/${1}_UK_Mobile_Vodafone_GBRVF/", utils.InfieldSep),
|
||||
},
|
||||
},
|
||||
Weight: 20,
|
||||
}
|
||||
|
||||
v7Attr, err := m.migrateV6ToV7AttributeProfile(v6Attr)
|
||||
if err != nil {
|
||||
t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err)
|
||||
}
|
||||
if !reflect.DeepEqual(v7Attr, exp) {
|
||||
t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", utils.ToJSON(exp), utils.ToJSON(v7Attr))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user