diff --git a/apier/v1/apier_local_test.go b/apier/v1/apier_local_test.go index 1dae33ff8..070f8d018 100644 --- a/apier/v1/apier_local_test.go +++ b/apier/v1/apier_local_test.go @@ -617,7 +617,7 @@ func TestApierTPActionTriggers(t *testing.T) { } reply := "" at := &utils.TPActionTriggers{TPid: engine.TEST_SQL, ActionTriggersId: "STANDARD_TRIGGERS", ActionTriggers: []*utils.TPActionTrigger{ - &utils.TPActionTrigger{BalanceType: "*monetary", BalanceDirection: "*out", ThresholdType: "*min_balance", ThresholdValue: 2, ActionsId: "LOG_BALANCE", Weight: 10}, + &utils.TPActionTrigger{Id: "MYFIRSTTRIGGER", BalanceType: "*monetary", BalanceDirection: "*out", ThresholdType: "*min_balance", ThresholdValue: 2, ActionsId: "LOG_BALANCE", Weight: 10}, }} atTst := new(utils.TPActionTriggers) *atTst = *at @@ -646,7 +646,7 @@ func TestApierTPActionTriggers(t *testing.T) { if err := rater.Call("ApierV1.GetTPActionTriggers", AttrGetTPActionTriggers{TPid: atTst.TPid, ActionTriggersId: atTst.ActionTriggersId}, &rplyActs); err != nil { t.Error("Calling ApierV1.GetTPActionTriggers, got error: ", err.Error()) } else if !reflect.DeepEqual(atTst, rplyActs) { - t.Errorf("Calling ApierV1.GetTPActionTriggers expected: %v, received: %v", atTst, rplyActs) + t.Errorf("Calling ApierV1.GetTPActionTriggers expected: %v, received: %v", atTst.ActionTriggers[0], rplyActs.ActionTriggers[0]) } // Test remove if err := rater.Call("ApierV1.RemTPActionTriggers", AttrGetTPActionTriggers{TPid: atTst.TPid, ActionTriggersId: atTst.ActionTriggersId}, &reply); err != nil { diff --git a/engine/loader_helpers.go b/engine/loader_helpers.go index 11281c4b4..131b9c0fe 100644 --- a/engine/loader_helpers.go +++ b/engine/loader_helpers.go @@ -385,8 +385,8 @@ var FileValidators = map[string]*FileLineRegexValidator{ utils.ACTION_PLANS_CSV: &FileLineRegexValidator{utils.ACTION_PLANS_NRCOLS, regexp.MustCompile(`(?:\w+\s*,\s*){3}(?:\d+\.?\d*){1}`), "Tag([0-9A-Za-z_]),ActionsTag([0-9A-Za-z_]),TimingTag([0-9A-Za-z_]),Weight([0-9.])"}, - utils.ACTION_TRIGGERS_CSV: &FileLineRegexValidator{utils.ACTION_TRIGGERS_NRCOLS, regexp.MustCompile(`(?:\w+),(?:\*\w+),(?:\d+\.?\d*),(?:true|false)?,(?:\d+[smh]?),(?:\w+\s*)?,(?:\*\w+)?,(?:\*out)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*)?,(?:[0-9A-Za-z_;]*)?,(?:\d+\.?\d*)?,(?:\d+)?,(?:\w+),(?:\d+\.?\d*)$`), - "Tag([0-9A-Za-z_]),ThresholdType(*[a-z_]),ThresholdValue([0-9]+),Recurrent(true|false),MinSleep([0-9]+)?,BalanceTag([0-9A-Za-z_]),BalanceType(*[a-z_]),BalanceDirection(*out),BalanceCategory([a-z_]),BalanceDestinationTag([0-9A-Za-z_]|*all),BalanceRatingSubject(*[a-z_]),BalanceSharedGroup(*[a-z_]),BalanceExpiryTime(*[a-z_]|+[0-9][smh]|[0-9]),BalanceTimingTags(([0-9A-Za-z_];?)*)BalanceWeight(*[a-z_]),StatsMinQueuedItems([0-9]+),ActionsTag([0-9A-Za-z_]),Weight([0-9]+)"}, + utils.ACTION_TRIGGERS_CSV: &FileLineRegexValidator{utils.ACTION_TRIGGERS_NRCOLS, regexp.MustCompile(`(?:\w+),(?:\w+)?,(?:\*\w+),(?:\d+\.?\d*),(?:true|false)?,(?:\d+[smh]?),(?:\w+\s*)?,(?:\*\w+)?,(?:\*out)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\w+|\*any)?,(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*)?,(?:[0-9A-Za-z_;]*)?,(?:\d+\.?\d*)?,(?:\d+)?,(?:\w+),(?:\d+\.?\d*)$`), + "Tag([0-9A-Za-z_]),UniqueId([0-9A-Za-z_]),ThresholdType(*[a-z_]),ThresholdValue([0-9]+),Recurrent(true|false),MinSleep([0-9]+)?,BalanceTag([0-9A-Za-z_]),BalanceType(*[a-z_]),BalanceDirection(*out),BalanceCategory([a-z_]),BalanceDestinationTag([0-9A-Za-z_]|*all),BalanceRatingSubject(*[a-z_]),BalanceSharedGroup(*[a-z_]),BalanceExpiryTime(*[a-z_]|+[0-9][smh]|[0-9]),BalanceTimingTags(([0-9A-Za-z_];?)*)BalanceWeight(*[a-z_]),StatsMinQueuedItems([0-9]+),ActionsTag([0-9A-Za-z_]),Weight([0-9]+)"}, utils.ACCOUNT_ACTIONS_CSV: &FileLineRegexValidator{utils.ACCOUNT_ACTIONS_NRCOLS, regexp.MustCompile(`(?:\w+\s*),(?:(\w+;?)+\s*),(?:\*out\s*),(?:\w+\s*),(?:\w+\s*)$`), "Tenant([0-9A-Za-z_]),Account([0-9A-Za-z_.]),Direction(*out),ActionTimingsTag([0-9A-Za-z_]),ActionTriggersTag([0-9A-Za-z_])"}, diff --git a/engine/loader_helpers_test.go b/engine/loader_helpers_test.go index 5504bfc2a..e711d9653 100644 --- a/engine/loader_helpers_test.go +++ b/engine/loader_helpers_test.go @@ -76,10 +76,10 @@ DUMMY,INVALID;DATA ` var actionTriggersSample = `#Tag[0],ThresholdType[1],ThresholdValue[2],Recurrent[3],MinSleep[4],BalanceTag[5],BalanceType[6],BalanceDirection[7],BalanceCategory[8],BalanceDestinationTag[9],BalanceRatingSubject[10],BalanceSharedGroup[11],BalanceExpiryTime[12],BalanceTimingTags[13],BalanceWeight[14],StatsMinQueuedItems[15],ActionsTag[16],Weight[17] -STANDARD_TRIGGERS,*min_balance,2,false,0,,*monetary,*out,,,,,,ALWAYS;ASAP,,,LOG_WARNING,10 -STANDARD_TRIGGERS,*max_balance,20,false,0,,*monetary,*out,,,,,,,,,LOG_WARNING,10 -STANDARD_TRIGGERS,*max_counter,15,false,0,,*monetary,*out,,FS_USERS,,,,,,,LOG_WARNING,10 -CDRST1_WARN_ASR,*min_asr,45,true,1h,,,,,,,,,,,3,CDRST_WARN_HTTP,10 +STANDARD_TRIGGERS,,*min_balance,2,false,0,,*monetary,*out,,,,,,ALWAYS;ASAP,,,LOG_WARNING,10 +STANDARD_TRIGGERS,,*max_balance,20,false,0,,*monetary,*out,,,,,,,,,LOG_WARNING,10 +STANDARD_TRIGGERS,,*max_counter,15,false,0,,*monetary,*out,,FS_USERS,,,,,,,LOG_WARNING,10 +CDRST1_WARN_ASR,,*min_asr,45,true,1h,,,,,,,,,,,3,CDRST_WARN_HTTP,10 DUMMY,INVALID;DATA ` diff --git a/engine/storage_mysql_local_test.go b/engine/storage_mysql_local_test.go index 35e9c3735..1f34d9e85 100644 --- a/engine/storage_mysql_local_test.go +++ b/engine/storage_mysql_local_test.go @@ -266,6 +266,7 @@ func TestMySQLSetGetTPActionTriggers(t *testing.T) { return } atrg := &utils.TPActionTrigger{ + Id: "MY_FIRST_ATGR", BalanceType: "*monetary", BalanceDirection: "*out", ThresholdType: "*min_balance", @@ -276,10 +277,10 @@ func TestMySQLSetGetTPActionTriggers(t *testing.T) { ActionsId: "LOG_BALANCE", } mpAtrgs := map[string][]*utils.TPActionTrigger{TEST_SQL: []*utils.TPActionTrigger{atrg}} - if err := mysqlDb.SetTPActionTriggers(TEST_SQL+"1", mpAtrgs); err != nil { + if err := mysqlDb.SetTPActionTriggers(TEST_SQL, mpAtrgs); err != nil { t.Error("Unexpected error: ", err.Error()) } - if rcvMpAtrgs, err := mysqlDb.GetTpActionTriggers(TEST_SQL+"1", TEST_SQL); err != nil { + if rcvMpAtrgs, err := mysqlDb.GetTpActionTriggers(TEST_SQL, TEST_SQL); err != nil { t.Error("Unexpected error: ", err.Error()) } else if !reflect.DeepEqual(mpAtrgs, rcvMpAtrgs) { t.Errorf("Expecting: %v, received: %v", mpAtrgs, rcvMpAtrgs) diff --git a/engine/storage_psql_local_test.go b/engine/storage_psql_local_test.go index 196947836..7e169a5ef 100644 --- a/engine/storage_psql_local_test.go +++ b/engine/storage_psql_local_test.go @@ -268,6 +268,7 @@ func TestPSQLSetGetTPActionTriggers(t *testing.T) { return } atrg := &utils.TPActionTrigger{ + Id: "MY_FIRST_ATGR", BalanceType: "*monetary", BalanceDirection: "*out", ThresholdType: "*min_balance", @@ -278,10 +279,10 @@ func TestPSQLSetGetTPActionTriggers(t *testing.T) { ActionsId: "LOG_BALANCE", } mpAtrgs := map[string][]*utils.TPActionTrigger{TEST_SQL: []*utils.TPActionTrigger{atrg}} - if err := psqlDb.SetTPActionTriggers(TEST_SQL+"1", mpAtrgs); err != nil { + if err := psqlDb.SetTPActionTriggers(TEST_SQL, mpAtrgs); err != nil { t.Error("Unexpected error: ", err.Error()) } - if rcvMpAtrgs, err := psqlDb.GetTpActionTriggers(TEST_SQL+"1", TEST_SQL); err != nil { + if rcvMpAtrgs, err := psqlDb.GetTpActionTriggers(TEST_SQL, TEST_SQL); err != nil { t.Error("Unexpected error: ", err.Error()) } else if !reflect.DeepEqual(mpAtrgs, rcvMpAtrgs) { t.Errorf("Expecting: %v, received: %v", mpAtrgs, rcvMpAtrgs)