From 2e241d96324821ec4df51c56e1d4dae0422e31da Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Wed, 3 Nov 2021 15:27:50 +0200 Subject: [PATCH] Remove AttrArgsProcessEvent type and use CGREvent in its stead --- apier/v1/api_interfaces.go | 4 +- apier/v1/apier2_it_test.go | 36 +- apier/v1/attributes.go | 4 +- apier/v1/attributes_it_test.go | 306 +++--- apier/v1/cache_replication_it_test.go | 18 +- apier/v1/dispatcher.go | 4 +- apier/v1/filterindexecache_it_test.go | 140 ++- console/attributes_for_event.go | 8 +- console/attributes_process_event.go | 8 +- dispatchers/attributes.go | 20 +- dispatchers/attributes_it_test.go | 182 ++-- dispatchers/attributes_test.go | 38 +- dispatchers/dispatchers.go | 5 +- ees/ees.go | 13 +- engine/attributes.go | 50 +- engine/attributes_test.go | 150 +-- engine/cdrs.go | 9 +- engine/cdrs_test.go | 2 +- engine/chargers.go | 12 +- engine/dispatcherprfl_test.go | 18 - engine/routes.go | 9 +- engine/z_attributes_test.go | 936 ++++++++---------- .../attributes_filters_index_it_test.go | 32 +- general_tests/attributes_it_test.go | 188 ++-- .../cacherpl_filter_update_it_test.go | 48 +- general_tests/filters_it_test.go | 44 +- sessions/sessions.go | 11 +- sessions/sessions_test.go | 14 +- sessions/sessionscover_test.go | 8 +- 29 files changed, 988 insertions(+), 1329 deletions(-) diff --git a/apier/v1/api_interfaces.go b/apier/v1/api_interfaces.go index d259e9292..8f1a20da9 100644 --- a/apier/v1/api_interfaces.go +++ b/apier/v1/api_interfaces.go @@ -64,8 +64,8 @@ type RouteSv1Interface interface { } type AttributeSv1Interface interface { - GetAttributeForEvent(args *engine.AttrArgsProcessEvent, reply *engine.AttributeProfile) (err error) - ProcessEvent(args *engine.AttrArgsProcessEvent, reply *engine.AttrSProcessEventReply) error + GetAttributeForEvent(args *utils.CGREvent, reply *engine.AttributeProfile) (err error) + ProcessEvent(args *utils.CGREvent, reply *engine.AttrSProcessEventReply) error Ping(ign *utils.CGREvent, reply *string) error } diff --git a/apier/v1/apier2_it_test.go b/apier/v1/apier2_it_test.go index 778bfa02b..fbee90abd 100644 --- a/apier/v1/apier2_it_test.go +++ b/apier/v1/apier2_it_test.go @@ -154,16 +154,14 @@ func testAPIerLoadFromFolder(t *testing.T) { } func testAPIerVerifyAttributesAfterLoad(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAPIerAfterDelete", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: "simpleauth", - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAPIerAfterDelete", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: "simpleauth", }, } @@ -232,16 +230,14 @@ func testAPIerAfterDelete(t *testing.T) { } func testAPIerVerifyAttributesAfterDelete(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAPIerAfterDelete", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: "simpleauth", - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAPIerAfterDelete", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: "simpleauth", }, } var attrReply *engine.AttributeProfile diff --git a/apier/v1/attributes.go b/apier/v1/attributes.go index 2cd4448bc..1b933728d 100644 --- a/apier/v1/attributes.go +++ b/apier/v1/attributes.go @@ -164,13 +164,13 @@ func (alSv1 *AttributeSv1) Call(serviceMethod string, } // GetAttributeForEvent returns matching AttributeProfile for Event -func (alSv1 *AttributeSv1) GetAttributeForEvent(args *engine.AttrArgsProcessEvent, +func (alSv1 *AttributeSv1) GetAttributeForEvent(args *utils.CGREvent, reply *engine.AttributeProfile) (err error) { return alSv1.attrS.V1GetAttributeForEvent(args, reply) } // ProcessEvent will replace event fields with the ones in matching AttributeProfile -func (alSv1 *AttributeSv1) ProcessEvent(args *engine.AttrArgsProcessEvent, +func (alSv1 *AttributeSv1) ProcessEvent(args *utils.CGREvent, reply *engine.AttrSProcessEventReply) error { return alSv1.attrS.V1ProcessEvent(args, reply) } diff --git a/apier/v1/attributes_it_test.go b/apier/v1/attributes_it_test.go index 49c144ac9..2e3db8f6f 100644 --- a/apier/v1/attributes_it_test.go +++ b/apier/v1/attributes_it_test.go @@ -182,17 +182,15 @@ func testAttributeSLoadFromFolder(t *testing.T) { } func testAttributeSGetAttributeForEvent(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1007", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1007", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -249,17 +247,15 @@ func testAttributeSGetAttributeForEvent(t *testing.T) { } func testAttributeSGetAttributeForEventNotFound(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEventWihMetaAnyContext", - Event: map[string]interface{}{ - utils.AccountField: "dan", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaCDRs, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEventWihMetaAnyContext", + Event: map[string]interface{}{ + utils.AccountField: "dan", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaCDRs, }, } eAttrPrf2 := &engine.AttributeProfileWithAPIOpts{ @@ -303,17 +299,15 @@ func testAttributeSGetAttributeForEventNotFound(t *testing.T) { } func testAttributeSGetAttributeForEventWithMetaAnyContext(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEventWihMetaAnyContext", - Event: map[string]interface{}{ - utils.AccountField: "dan", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaCDRs, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEventWihMetaAnyContext", + Event: map[string]interface{}{ + utils.AccountField: "dan", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaCDRs, }, } eAttrPrf2 := &engine.AttributeProfileWithAPIOpts{ @@ -361,17 +355,15 @@ func testAttributeSGetAttributeForEventWithMetaAnyContext(t *testing.T) { } func testAttributeSProcessEvent(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "1007", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "1007", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eRply := &engine.AttrSProcessEventReply{ @@ -419,17 +411,15 @@ func testAttributeSProcessEvent(t *testing.T) { } func testAttributeSProcessEventNotFound(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventNotFound", - Event: map[string]interface{}{ - utils.AccountField: "Inexistent", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventNotFound", + Event: map[string]interface{}{ + utils.AccountField: "Inexistent", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -441,18 +431,16 @@ func testAttributeSProcessEventNotFound(t *testing.T) { } func testAttributeSProcessEventMissing(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "NonExist", - utils.Category: "*attributes", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "NonExist", + utils.Category: "*attributes", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -464,17 +452,15 @@ func testAttributeSProcessEventMissing(t *testing.T) { } func testAttributeSProcessEventWithNoneSubstitute(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSWithNoneSubstitute", - Event: map[string]interface{}{ - utils.AccountField: "1008", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSWithNoneSubstitute", + Event: map[string]interface{}{ + utils.AccountField: "1008", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } alsPrf = &engine.AttributeProfileWithAPIOpts{ @@ -536,18 +522,16 @@ func testAttributeSProcessEventWithNoneSubstitute(t *testing.T) { } func testAttributeSProcessEventWithNoneSubstitute2(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSWithNoneSubstitute", - Event: map[string]interface{}{ - utils.AccountField: "1008", - utils.Subject: "1008", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSWithNoneSubstitute", + Event: map[string]interface{}{ + utils.AccountField: "1008", + utils.Subject: "1008", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } alsPrf = &engine.AttributeProfileWithAPIOpts{ @@ -619,18 +603,16 @@ func testAttributeSProcessEventWithNoneSubstitute2(t *testing.T) { } func testAttributeSProcessEventWithNoneSubstitute3(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSWithNoneSubstitute", - Event: map[string]interface{}{ - utils.AccountField: "1008", - utils.Subject: "1001", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSWithNoneSubstitute", + Event: map[string]interface{}{ + utils.AccountField: "1008", + utils.Subject: "1001", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } alsPrf = &engine.AttributeProfileWithAPIOpts{ @@ -714,17 +696,15 @@ func testAttributeSProcessEventWithHeader(t *testing.T) { } else if result != utils.OK { t.Error("Unexpected reply returned", result) } - attrArgs := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "HeaderEventForAttribute", - Event: map[string]interface{}{ - "Field1": "Value1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "HeaderEventForAttribute", + Event: map[string]interface{}{ + "Field1": "Value1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &engine.AttrSProcessEventReply{ @@ -1042,17 +1022,15 @@ func testAttributeSProcessEventWithSearchAndReplace(t *testing.T) { } else if result != utils.OK { t.Error("Unexpected reply returned", result) } - attrArgs := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "HeaderEventForAttribute", - Event: map[string]interface{}{ - "Category": "call", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "HeaderEventForAttribute", + Event: map[string]interface{}{ + "Category": "call", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &engine.AttrSProcessEventReply{ @@ -1151,17 +1129,15 @@ func testAttributeSProcessWithMultipleRuns(t *testing.T) { } else if result != utils.OK { t.Error("Unexpected reply returned", result) } - attrArgs := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &engine.AttrSProcessEventReply{ @@ -1268,17 +1244,15 @@ func testAttributeSProcessWithMultipleRuns2(t *testing.T) { } else if result != utils.OK { t.Error("Unexpected reply returned", result) } - attrArgs := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &engine.AttrSProcessEventReply{ @@ -1991,17 +1965,15 @@ func testAttributeSRmvAlsPrfWithoutTenant(t *testing.T) { } func testAttributeSCacheTestProcessEventNotFound(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - utils.AccountField: "1007", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - utils.OptsAttributesProfileIDs: []string{"ATTR_CACHE"}, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + utils.AccountField: "1007", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, + utils.OptsAttributesProfileIDs: []string{"ATTR_CACHE"}, }, } var rplyEv engine.AttrSProcessEventReply @@ -2012,17 +1984,15 @@ func testAttributeSCacheTestProcessEventNotFound(t *testing.T) { } func testAttributeSCacheTestProcessEventFound(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - utils.AccountField: "1007", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - utils.OptsAttributesProfileIDs: []string{"ATTR_CACHE"}, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + utils.AccountField: "1007", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, + utils.OptsAttributesProfileIDs: []string{"ATTR_CACHE"}, }, } var rplyEv engine.AttrSProcessEventReply diff --git a/apier/v1/cache_replication_it_test.go b/apier/v1/cache_replication_it_test.go index e17c685d0..6d4fb15fa 100644 --- a/apier/v1/cache_replication_it_test.go +++ b/apier/v1/cache_replication_it_test.go @@ -124,16 +124,14 @@ func testCacheSReplicateLoadTariffPlanFromFolder(t *testing.T) { } func testCacheSReplicateProcessAttributes(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testCacheSReplicateProcessAttributes", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testCacheSReplicateProcessAttributes", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eRply := &engine.AttrSProcessEventReply{ diff --git a/apier/v1/dispatcher.go b/apier/v1/dispatcher.go index 86dbad746..b466d9b5a 100644 --- a/apier/v1/dispatcher.go +++ b/apier/v1/dispatcher.go @@ -375,13 +375,13 @@ func (dA *DispatcherAttributeSv1) Ping(args *utils.CGREvent, reply *string) erro } // GetAttributeForEvent implements AttributeSv1GetAttributeForEvent -func (dA *DispatcherAttributeSv1) GetAttributeForEvent(args *engine.AttrArgsProcessEvent, +func (dA *DispatcherAttributeSv1) GetAttributeForEvent(args *utils.CGREvent, reply *engine.AttributeProfile) error { return dA.dA.AttributeSv1GetAttributeForEvent(args, reply) } // ProcessEvent implements AttributeSv1ProcessEvent -func (dA *DispatcherAttributeSv1) ProcessEvent(args *engine.AttrArgsProcessEvent, +func (dA *DispatcherAttributeSv1) ProcessEvent(args *utils.CGREvent, reply *engine.AttrSProcessEventReply) error { return dA.dA.AttributeSv1ProcessEvent(args, reply) } diff --git a/apier/v1/filterindexecache_it_test.go b/apier/v1/filterindexecache_it_test.go index b0edfcc8f..d19e34a11 100644 --- a/apier/v1/filterindexecache_it_test.go +++ b/apier/v1/filterindexecache_it_test.go @@ -950,17 +950,15 @@ func testV1FIdxCaRemoveStatQueueProfile(t *testing.T) { //AttributeProfile func testV1FIdxCaProcessAttributeProfileEventWithNotFound(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "3009", - utils.Destination: "+492511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "3009", + utils.Destination: "+492511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -1026,17 +1024,15 @@ func testV1FIdxCaSetAttributeProfile(t *testing.T) { t.Error("Unexpected reply returned", result) } //matches TEST_PROFILE1 - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "1009", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "1009", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -1048,17 +1044,15 @@ func testV1FIdxCaSetAttributeProfile(t *testing.T) { func testV1FIdxCaGetAttributeProfileFromTP(t *testing.T) { //matches ATTR_1 - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "1007", - utils.Destination: "+491511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "1007", + utils.Destination: "+491511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -1123,17 +1117,15 @@ func testV1FIdxCaUpdateAttributeProfile(t *testing.T) { t.Error("Unexpected reply returned", result) } //matches TEST_PROFILE1 - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "2009", - utils.Destination: "+492511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "2009", + utils.Destination: "+492511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -1183,17 +1175,15 @@ func testV1FIdxCaUpdateAttributeProfileFromTP(t *testing.T) { t.Error("Unexpected reply returned", result) } //matches TEST_PROFILE1 - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "3009", - utils.Destination: "+492511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "3009", + utils.Destination: "+492511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -1204,17 +1194,15 @@ func testV1FIdxCaUpdateAttributeProfileFromTP(t *testing.T) { func testV1FIdxCaRemoveAttributeProfile(t *testing.T) { var resp string - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "3009", - utils.Destination: "+492511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "3009", + utils.Destination: "+492511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -1222,17 +1210,15 @@ func testV1FIdxCaRemoveAttributeProfile(t *testing.T) { t.Error(err) } - ev2 := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.AccountField: "2009", - utils.Destination: "+492511231234", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev2 := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.AccountField: "2009", + utils.Destination: "+492511231234", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } if err := tFIdxCaRpc.Call(utils.AttributeSv1ProcessEvent, ev2, &rplyEv); err != nil { diff --git a/console/attributes_for_event.go b/console/attributes_for_event.go index bdd9e45d3..59608dafb 100644 --- a/console/attributes_for_event.go +++ b/console/attributes_for_event.go @@ -27,7 +27,7 @@ func init() { c := &CmdGetAttributeForEvent{ name: "attributes_for_event", rpcMethod: utils.AttributeSv1GetAttributeForEvent, - rpcParams: &engine.AttrArgsProcessEvent{}, + rpcParams: &utils.CGREvent{}, } commands[c.Name()] = c c.CommandExecuter = &CommandExecuter{c} @@ -36,7 +36,7 @@ func init() { type CmdGetAttributeForEvent struct { name string rpcMethod string - rpcParams *engine.AttrArgsProcessEvent + rpcParams *utils.CGREvent *CommandExecuter } @@ -50,9 +50,7 @@ func (self *CmdGetAttributeForEvent) RpcMethod() string { func (self *CmdGetAttributeForEvent) RpcParams(reset bool) interface{} { if reset || self.rpcParams == nil { - self.rpcParams = &engine.AttrArgsProcessEvent{ - CGREvent: new(utils.CGREvent), - } + self.rpcParams = new(utils.CGREvent) } return self.rpcParams } diff --git a/console/attributes_process_event.go b/console/attributes_process_event.go index 623bbf2a7..505694cac 100644 --- a/console/attributes_process_event.go +++ b/console/attributes_process_event.go @@ -29,7 +29,7 @@ func init() { c := &CmdAttributesProcessEvent{ name: "attributes_process_event", rpcMethod: utils.AttributeSv1ProcessEvent, - rpcParams: &engine.AttrArgsProcessEvent{}, + rpcParams: &utils.CGREvent{}, } commands[c.Name()] = c c.CommandExecuter = &CommandExecuter{c} @@ -38,7 +38,7 @@ func init() { type CmdAttributesProcessEvent struct { name string rpcMethod string - rpcParams *engine.AttrArgsProcessEvent + rpcParams *utils.CGREvent *CommandExecuter } @@ -52,9 +52,7 @@ func (self *CmdAttributesProcessEvent) RpcMethod() string { func (self *CmdAttributesProcessEvent) RpcParams(reset bool) interface{} { if reset || self.rpcParams == nil { - self.rpcParams = &engine.AttrArgsProcessEvent{ - CGREvent: new(utils.CGREvent), - } + self.rpcParams = new(utils.CGREvent) } return self.rpcParams } diff --git a/dispatchers/attributes.go b/dispatchers/attributes.go index fae8fb5e7..0f5c7445b 100644 --- a/dispatchers/attributes.go +++ b/dispatchers/attributes.go @@ -43,34 +43,34 @@ func (dS *DispatcherService) AttributeSv1Ping(args *utils.CGREvent, } // AttributeSv1GetAttributeForEvent is the dispatcher method for AttributeSv1.GetAttributeForEvent -func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(args *engine.AttrArgsProcessEvent, +func (dS *DispatcherService) AttributeSv1GetAttributeForEvent(args *utils.CGREvent, reply *engine.AttributeProfile) (err error) { tnt := dS.cfg.GeneralCfg().DefaultTenant - if args.CGREvent != nil && args.CGREvent.Tenant != utils.EmptyString { - tnt = args.CGREvent.Tenant + if args != nil && args.Tenant != utils.EmptyString { + tnt = args.Tenant } if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 { if err = dS.authorize(utils.AttributeSv1GetAttributeForEvent, tnt, - utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey]), args.CGREvent.Time); err != nil { + utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey]), args.Time); err != nil { return } } - return dS.Dispatch(args.CGREvent, utils.MetaAttributes, utils.AttributeSv1GetAttributeForEvent, args, reply) + return dS.Dispatch(args, utils.MetaAttributes, utils.AttributeSv1GetAttributeForEvent, args, reply) } // AttributeSv1ProcessEvent . -func (dS *DispatcherService) AttributeSv1ProcessEvent(args *engine.AttrArgsProcessEvent, +func (dS *DispatcherService) AttributeSv1ProcessEvent(args *utils.CGREvent, reply *engine.AttrSProcessEventReply) (err error) { tnt := dS.cfg.GeneralCfg().DefaultTenant - if args.CGREvent != nil && args.CGREvent.Tenant != utils.EmptyString { - tnt = args.CGREvent.Tenant + if args != nil && args.Tenant != utils.EmptyString { + tnt = args.Tenant } if len(dS.cfg.DispatcherSCfg().AttributeSConns) != 0 { if err = dS.authorize(utils.AttributeSv1ProcessEvent, tnt, - utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey]), args.CGREvent.Time); err != nil { + utils.IfaceAsString(args.APIOpts[utils.OptsAPIKey]), args.Time); err != nil { return } } - return dS.Dispatch(args.CGREvent, utils.MetaAttributes, utils.AttributeSv1ProcessEvent, args, reply) + return dS.Dispatch(args, utils.MetaAttributes, utils.AttributeSv1ProcessEvent, args, reply) } diff --git a/dispatchers/attributes_it_test.go b/dispatchers/attributes_it_test.go index 994cb921d..e9c21aa9b 100644 --- a/dispatchers/attributes_it_test.go +++ b/dispatchers/attributes_it_test.go @@ -211,18 +211,16 @@ func testDspAttrPingFailover2(t *testing.T) { } func testDspAttrGetAttrFailover(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1002", - utils.EventName: "Event1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "attr12345", - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1002", + utils.EventName: "Event1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "attr12345", + utils.OptsContext: "simpleauth", }, } eAttrPrf := &engine.AttributeProfile{ @@ -324,16 +322,14 @@ func testDspAttrPing(t *testing.T) { } func testDspAttrTestMissingArgDispatcher(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: "simpleauth", }, } var attrReply *engine.AttributeProfile @@ -344,16 +340,14 @@ func testDspAttrTestMissingArgDispatcher(t *testing.T) { } func testDspAttrTestMissingApiKey(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: "simpleauth", }, } var attrReply *engine.AttributeProfile @@ -364,16 +358,14 @@ func testDspAttrTestMissingApiKey(t *testing.T) { } func testDspAttrTestUnknownApiKey(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "1234", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "1234", }, } var attrReply *engine.AttributeProfile @@ -384,17 +376,15 @@ func testDspAttrTestUnknownApiKey(t *testing.T) { } func testDspAttrTestAuthKey(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "12345", - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "12345", + utils.OptsContext: "simpleauth", }, } var attrReply *engine.AttributeProfile @@ -405,17 +395,15 @@ func testDspAttrTestAuthKey(t *testing.T) { } func testDspAttrTestAuthKey2(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1001", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "attr12345", - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "attr12345", + utils.OptsContext: "simpleauth", }, } eAttrPrf := &engine.AttributeProfile{ @@ -477,18 +465,16 @@ func testDspAttrTestAuthKey2(t *testing.T) { } func testDspAttrTestAuthKey3(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1001", - utils.EventName: "Event1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "attr12345", - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1001", + utils.EventName: "Event1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "attr12345", + utils.OptsContext: "simpleauth", }, } var attrReply *engine.AttributeProfile @@ -499,18 +485,16 @@ func testDspAttrTestAuthKey3(t *testing.T) { } func testDspAttrGetAttrRoundRobin(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.AccountField: "1002", - utils.EventName: "RoundRobin", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "attr12345", - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.AccountField: "1002", + utils.EventName: "RoundRobin", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "attr12345", + utils.OptsContext: "simpleauth", }, } eAttrPrf := &engine.AttributeProfile{ @@ -590,18 +574,16 @@ func testDspAttrGetAttrRoundRobin(t *testing.T) { } func testDspAttrGetAttrInternal(t *testing.T) { - args := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSGetAttributeForEvent", - Event: map[string]interface{}{ - utils.EventName: "Internal", - utils.AccountField: "1003", - }, - APIOpts: map[string]interface{}{ - utils.OptsAPIKey: "attr12345", - utils.OptsContext: "simpleauth", - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSGetAttributeForEvent", + Event: map[string]interface{}{ + utils.EventName: "Internal", + utils.AccountField: "1003", + }, + APIOpts: map[string]interface{}{ + utils.OptsAPIKey: "attr12345", + utils.OptsContext: "simpleauth", }, } diff --git a/dispatchers/attributes_test.go b/dispatchers/attributes_test.go index 4f7bcdbf5..149780aa1 100644 --- a/dispatchers/attributes_test.go +++ b/dispatchers/attributes_test.go @@ -91,10 +91,8 @@ func TestDspAttributeSv1GetAttributeForEventError(t *testing.T) { cgrCfg := config.NewDefaultCGRConfig() cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"} dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil) - processEvent := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Time: &time.Time{}, - }, + processEvent := &utils.CGREvent{ + Time: &time.Time{}, } var reply *engine.AttributeProfile err := dspSrv.AttributeSv1GetAttributeForEvent(processEvent, reply) @@ -108,11 +106,9 @@ func TestDspAttributeSv1GetAttributeForEventErrorTenant(t *testing.T) { cgrCfg := config.NewDefaultCGRConfig() cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"} dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil) - processEvent := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "tenant", - Time: &time.Time{}, - }, + processEvent := &utils.CGREvent{ + Tenant: "tenant", + Time: &time.Time{}, } var reply *engine.AttributeProfile err := dspSrv.AttributeSv1GetAttributeForEvent(processEvent, reply) @@ -125,11 +121,9 @@ func TestDspAttributeSv1GetAttributeForEventErrorTenant(t *testing.T) { func TestDspAttributeSv1GetAttributeForEventErrorAttributeS(t *testing.T) { cgrCfg := config.NewDefaultCGRConfig() dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil) - processEvent := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "tenant", - Time: &time.Time{}, - }, + processEvent := &utils.CGREvent{ + Tenant: "tenant", + Time: &time.Time{}, } var reply *engine.AttributeProfile @@ -143,11 +137,9 @@ func TestDspAttributeSv1GetAttributeForEventErrorAttributeS(t *testing.T) { func TestDspAttributeSv1ProcessEventError(t *testing.T) { cgrCfg := config.NewDefaultCGRConfig() dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil) - processEvent := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "tenant", - Time: &time.Time{}, - }, + processEvent := &utils.CGREvent{ + Tenant: "tenant", + Time: &time.Time{}, } var reply *engine.AttrSProcessEventReply @@ -162,11 +154,9 @@ func TestDspAttributeSv1ProcessEventErrorAttributeSConns(t *testing.T) { cgrCfg := config.NewDefaultCGRConfig() cgrCfg.DispatcherSCfg().AttributeSConns = []string{"test"} dspSrv := NewDispatcherService(nil, cgrCfg, nil, nil) - processEvent := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "tenant", - Time: &time.Time{}, - }, + processEvent := &utils.CGREvent{ + Tenant: "tenant", + Time: &time.Time{}, } var reply *engine.AttrSProcessEventReply diff --git a/dispatchers/dispatchers.go b/dispatchers/dispatchers.go index c8e8b9c6e..708de8a04 100644 --- a/dispatchers/dispatchers.go +++ b/dispatchers/dispatchers.go @@ -61,10 +61,7 @@ func (dS *DispatcherService) authorizeEvent(ev *utils.CGREvent, reply *engine.AttrSProcessEventReply) (err error) { ev.APIOpts[utils.OptsContext] = utils.MetaAuth if err = dS.connMgr.Call(dS.cfg.DispatcherSCfg().AttributeSConns, nil, - utils.AttributeSv1ProcessEvent, - &engine.AttrArgsProcessEvent{ - CGREvent: ev, - }, reply); err != nil { + utils.AttributeSv1ProcessEvent, ev, reply); err != nil { if err.Error() == utils.ErrNotFound.Error() { err = utils.ErrUnknownApiKey } diff --git a/ees/ees.go b/ees/ees.go index 8dff35eb2..831968bbe 100644 --- a/ees/ees.go +++ b/ees/ees.go @@ -107,15 +107,10 @@ func (eeS *EventExporterS) attrSProcessEvent(cgrEv *utils.CGREvent, attrIDs []st cgrEv.APIOpts = make(map[string]interface{}) } cgrEv.APIOpts[utils.Subsys] = utils.MetaEEs - attrArgs := &engine.AttrArgsProcessEvent{ - CGREvent: cgrEv, - } - attrArgs.CGREvent.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs - attrArgs.CGREvent.APIOpts[utils.OptsContext] = ctx - if err = eeS.connMgr.Call( - eeS.cfg.EEsNoLksCfg().AttributeSConns, nil, - utils.AttributeSv1ProcessEvent, - attrArgs, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { + cgrEv.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs + cgrEv.APIOpts[utils.OptsContext] = ctx + if err = eeS.connMgr.Call(eeS.cfg.EEsNoLksCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent, + cgrEv, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { *cgrEv = *rplyEv.CGREvent } else if err != nil && err.Error() == utils.ErrNotFound.Error() { diff --git a/engine/attributes.go b/engine/attributes.go index 06859ceab..77d60b762 100644 --- a/engine/attributes.go +++ b/engine/attributes.go @@ -161,34 +161,8 @@ func (attrReply *AttrSProcessEventReply) Digest() (rplyDigest string) { return } -// AttrArgsProcessEvent arguments used for proccess event -type AttrArgsProcessEvent struct { - *utils.CGREvent - clnb bool //rpcclonable -} - -// SetCloneable sets if the args should be clonned on internal connections -func (attr *AttrArgsProcessEvent) SetCloneable(rpcCloneable bool) { - attr.clnb = rpcCloneable -} - -// RPCClone implements rpcclient.RPCCloner interface -func (attr *AttrArgsProcessEvent) RPCClone() (interface{}, error) { - if !attr.clnb { - return attr, nil - } - return attr.Clone(), nil -} - -// Clone creates a clone of the object -func (attr *AttrArgsProcessEvent) Clone() *AttrArgsProcessEvent { - return &AttrArgsProcessEvent{ - CGREvent: attr.CGREvent.Clone(), - } -} - // processEvent will match event with attribute profile and do the necessary replacements -func (alS *AttributeService) processEvent(tnt string, args *AttrArgsProcessEvent, evNm utils.MapStorage, dynDP utils.DataProvider, +func (alS *AttributeService) processEvent(tnt string, args *utils.CGREvent, evNm utils.MapStorage, dynDP utils.DataProvider, lastID string, processedPrfNo map[string]int, profileRuns int) ( rply *AttrSProcessEventReply, err error) { context := alS.cgrcfg.AttributeSCfg().Opts.Context @@ -207,7 +181,7 @@ func (alS *AttributeService) processEvent(tnt string, args *AttrArgsProcessEvent } rply = &AttrSProcessEventReply{ MatchedProfiles: []string{attrPrf.TenantIDInline()}, - CGREvent: args.CGREvent, + CGREvent: args, blocker: attrPrf.Blocker, } rply.Tenant = tnt @@ -262,9 +236,9 @@ func (alS *AttributeService) processEvent(tnt string, args *AttrArgsProcessEvent } // V1GetAttributeForEvent returns the AttributeProfile that matches the event -func (alS *AttributeService) V1GetAttributeForEvent(args *AttrArgsProcessEvent, +func (alS *AttributeService) V1GetAttributeForEvent(args *utils.CGREvent, attrPrfl *AttributeProfile) (err error) { - if args.CGREvent == nil { + if args == nil { return utils.NewErrMandatoryIeMissing(utils.CGREventString) } tnt := args.Tenant @@ -282,7 +256,7 @@ func (alS *AttributeService) V1GetAttributeForEvent(args *AttrArgsProcessEvent, } } attrPrf, err := alS.attributeProfileForEvent(tnt, context, attrIDs, args.Time, utils.MapStorage{ - utils.MetaReq: args.CGREvent.Event, + utils.MetaReq: args.Event, utils.MetaOpts: args.APIOpts, utils.MetaVars: utils.MapStorage{ utils.MetaProcessRuns: 0, @@ -299,9 +273,9 @@ func (alS *AttributeService) V1GetAttributeForEvent(args *AttrArgsProcessEvent, } // V1ProcessEvent proccess the event and returns the result -func (alS *AttributeService) V1ProcessEvent(args *AttrArgsProcessEvent, +func (alS *AttributeService) V1ProcessEvent(args *utils.CGREvent, reply *AttrSProcessEventReply) (err error) { - if args.CGREvent == nil { + if args == nil { return utils.NewErrMandatoryIeMissing(utils.CGREventString) } if args.Event == nil { @@ -328,11 +302,11 @@ func (alS *AttributeService) V1ProcessEvent(args *AttrArgsProcessEvent, } profileRuns = int(val) } - args.CGREvent = args.CGREvent.Clone() + args = args.Clone() processedPrf := make(utils.StringSet) processedPrfNo := make(map[string]int) eNV := utils.MapStorage{ - utils.MetaReq: args.CGREvent.Event, + utils.MetaReq: args.Event, utils.MetaOpts: args.APIOpts, utils.MetaVars: utils.MapStorage{ utils.MetaProcessRuns: 0, @@ -357,7 +331,7 @@ func (alS *AttributeService) V1ProcessEvent(args *AttrArgsProcessEvent, } break } - args.CGREvent.Tenant = evRply.CGREvent.Tenant + args.Tenant = evRply.CGREvent.Tenant tnt = evRply.CGREvent.Tenant lastID = evRply.MatchedProfiles[0] matchedIDs = append(matchedIDs, lastID) @@ -372,7 +346,7 @@ func (alS *AttributeService) V1ProcessEvent(args *AttrArgsProcessEvent, } if err == nil || err == utils.ErrNotFound { // Make sure the requested fields were populated - for field, val := range args.CGREvent.Event { + for field, val := range args.Event { if val == utils.MetaAttributes { // mandatory IE missing err = utils.NewErrMandatoryIeMissing(field) @@ -386,7 +360,7 @@ func (alS *AttributeService) V1ProcessEvent(args *AttrArgsProcessEvent, *reply = AttrSProcessEventReply{ MatchedProfiles: matchedIDs, AlteredFields: alteredFields.AsSlice(), - CGREvent: args.CGREvent, + CGREvent: args, } return } diff --git a/engine/attributes_test.go b/engine/attributes_test.go index d4f6b69ca..4f93be2f9 100644 --- a/engine/attributes_test.go +++ b/engine/attributes_test.go @@ -63,50 +63,12 @@ func TestAttributesShutdown(t *testing.T) { utils.Logger.SetLogLevel(0) } -func TestAttributesRPCClone(t *testing.T) { - attr := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Event: make(map[string]interface{}), - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaAny, - utils.OptsAttributesProfileIDs: []string{"ATTR_ID"}, - }, - }, - clnb: true, - } - - rcv, err := attr.RPCClone() - - exp := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Event: make(map[string]interface{}), - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaAny, - utils.OptsAttributesProfileIDs: []string{"ATTR_ID"}, - }, - }, - clnb: false, - } - - if err != nil { - t.Fatalf("\nexpected: <%+v>, \nreceived: <%+v>", nil, err) - } - - if !reflect.DeepEqual(rcv, exp) { - t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", exp, rcv) - } - -} - func TestAttributesV1GetAttributeForEventNilCGREvent(t *testing.T) { alS := &AttributeService{} - args := &AttrArgsProcessEvent{} reply := &AttributeProfile{} experr := fmt.Sprintf("MANDATORY_IE_MISSING: [%s]", "CGREvent") - err := alS.V1GetAttributeForEvent(args, reply) + err := alS.V1GetAttributeForEvent(nil, reply) if err == nil || err.Error() != experr { t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) @@ -122,9 +84,7 @@ func TestAttributesV1GetAttributeForEventProfileNotFound(t *testing.T) { filterS: &FilterS{}, cgrcfg: cfg, } - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{}, - } + args := &utils.CGREvent{} reply := &AttributeProfile{} experr := utils.ErrNotFound @@ -144,9 +104,7 @@ func TestAttributesV1GetAttributeForEvent2(t *testing.T) { filterS: &FilterS{}, cgrcfg: cfg, } - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{}, - } + args := &utils.CGREvent{} reply := &AttributeProfile{} experr := utils.ErrNotFound @@ -226,15 +184,13 @@ func TestAttributesV1ProcessEvent(t *testing.T) { }, blocker: false, } - if err = alS.V1ProcessEvent(&AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - utils.AccountField: "adrian@itsyscom.com", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - }, + if err = alS.V1ProcessEvent(&utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + utils.AccountField: "adrian@itsyscom.com", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, }, }, &rply); err != nil { t.Errorf("Expected <%+v>, received <%+v>", nil, err) @@ -271,15 +227,13 @@ func TestAttributesV1ProcessEventErrorMetaSum(t *testing.T) { alS := NewAttributeService(dm, filterS, cfg) var rply AttrSProcessEventReply expErr := "SERVER_ERROR: NotEnoughParameters" - if err = alS.V1ProcessEvent(&AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - utils.AccountField: "adrian@itsyscom.com", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - }, + if err = alS.V1ProcessEvent(&utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + utils.AccountField: "adrian@itsyscom.com", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, }, }, &rply); err == nil || err.Error() != expErr { t.Errorf("Expected <%+v>, received <%+v>", expErr, err) @@ -316,15 +270,13 @@ func TestAttributesV1ProcessEventErrorMetaDifference(t *testing.T) { alS := NewAttributeService(dm, filterS, cfg) var rply AttrSProcessEventReply expErr := "SERVER_ERROR: NotEnoughParameters" - if err := alS.V1ProcessEvent(&AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - utils.AccountField: "adrian@itsyscom.com", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - }, + if err := alS.V1ProcessEvent(&utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + utils.AccountField: "adrian@itsyscom.com", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, }, }, &rply); err == nil || err.Error() != expErr { t.Errorf("Expected <%+v>, received <%+v>", expErr, err) @@ -360,15 +312,13 @@ func TestAttributesV1ProcessEventErrorMetaValueExponent(t *testing.T) { alS := NewAttributeService(dm, filterS, cfg) var rply AttrSProcessEventReply expErr := "SERVER_ERROR: invalid arguments <[{\"Rules\":\"CGRATES.ORG\"}]> to *value_exponent" - if err := alS.V1ProcessEvent(&AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - utils.AccountField: "adrian@itsyscom.com", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - }, + if err := alS.V1ProcessEvent(&utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + utils.AccountField: "adrian@itsyscom.com", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, }, }, &rply); err == nil || err.Error() != expErr { t.Errorf("Expected <%+v>, received <%+v>", expErr, err) @@ -1152,18 +1102,16 @@ func TestAttributesV1ProcessEventMultipleRuns1(t *testing.T) { t.Error(err) } - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "AttrProcessEventMultipleRuns", - Event: map[string]interface{}{ - "Password": "passwd", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 3, - utils.OptsContext: utils.MetaAny, - utils.OptsAttributesProfileIDs: []string{"ATTR1", "ATTR2"}, - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "AttrProcessEventMultipleRuns", + Event: map[string]interface{}{ + "Password": "passwd", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 3, + utils.OptsContext: utils.MetaAny, + utils.OptsAttributesProfileIDs: []string{"ATTR1", "ATTR2"}, }, } reply := &AttrSProcessEventReply{} @@ -1264,15 +1212,13 @@ func TestAttributesV1ProcessEventMultipleRuns2(t *testing.T) { t.Error(err) } - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "AttrProcessEventMultipleRuns", - Event: map[string]interface{}{}, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 3, - utils.OptsContext: utils.MetaAny, - }, + args := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "AttrProcessEventMultipleRuns", + Event: map[string]interface{}{}, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 3, + utils.OptsContext: utils.MetaAny, }, } diff --git a/engine/cdrs.go b/engine/cdrs.go index 37fb381f6..64230f223 100644 --- a/engine/cdrs.go +++ b/engine/cdrs.go @@ -374,15 +374,12 @@ func (cdrS *CDRServer) attrSProcessEvent(cgrEv *utils.CGREvent) (err error) { cgrEv.APIOpts = make(map[string]interface{}) } cgrEv.APIOpts[utils.Subsys] = utils.MetaCDRs - attrArgs := &AttrArgsProcessEvent{ - CGREvent: cgrEv, - } - if attrArgs.CGREvent.APIOpts[utils.OptsContext] == utils.EmptyString { - attrArgs.CGREvent.APIOpts[utils.OptsContext] = utils.MetaCDRs + if cgrEv.APIOpts[utils.OptsContext] == utils.EmptyString { + cgrEv.APIOpts[utils.OptsContext] = utils.MetaCDRs } if err = cdrS.connMgr.Call(cdrS.cgrCfg.CdrsCfg().AttributeSConns, nil, utils.AttributeSv1ProcessEvent, - attrArgs, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { + cgrEv, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { *cgrEv = *rplyEv.CGREvent } else if err != nil && err.Error() == utils.ErrNotFound.Error() { diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go index cde87c4c1..5491e944b 100644 --- a/engine/cdrs_test.go +++ b/engine/cdrs_test.go @@ -42,7 +42,7 @@ func TestCDRSV1ProcessCDRNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } diff --git a/engine/chargers.go b/engine/chargers.go index 05789fc07..97840f426 100644 --- a/engine/chargers.go +++ b/engine/chargers.go @@ -123,17 +123,13 @@ func (cS *ChargerService) processEvent(tnt string, cgrEv *utils.CGREvent) (rply if len(cP.AttributeIDs) == 1 && cP.AttributeIDs[0] == utils.MetaNone { continue // AttributeS disabled } - - args := &AttrArgsProcessEvent{ - CGREvent: clonedEv, - } - args.CGREvent.APIOpts[utils.OptsAttributesProfileIDs] = cP.AttributeIDs - if args.CGREvent.APIOpts[utils.OptsContext] == utils.EmptyString { - args.CGREvent.APIOpts[utils.OptsContext] = utils.MetaChargers + clonedEv.APIOpts[utils.OptsAttributesProfileIDs] = cP.AttributeIDs + if clonedEv.APIOpts[utils.OptsContext] == utils.EmptyString { + clonedEv.APIOpts[utils.OptsContext] = utils.MetaChargers } var evReply AttrSProcessEventReply if err = cS.connMgr.Call(cS.cfg.ChargerSCfg().AttributeSConns, nil, - utils.AttributeSv1ProcessEvent, args, &evReply); err != nil { + utils.AttributeSv1ProcessEvent, clonedEv, &evReply); err != nil { if err.Error() != utils.ErrNotFound.Error() { return nil, err } diff --git a/engine/dispatcherprfl_test.go b/engine/dispatcherprfl_test.go index 7c23d0a3b..5bdd7578f 100644 --- a/engine/dispatcherprfl_test.go +++ b/engine/dispatcherprfl_test.go @@ -21,7 +21,6 @@ import ( "reflect" "testing" - "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/utils" ) @@ -321,20 +320,3 @@ func TestDispatcherHostProfileCloneWithParams(t *testing.T) { t.Errorf("\nexpected: <%+v>, \nreceived: <%+v", exp, rcv) } } - -func TestDispatcherHostCallNilRPCConn(t *testing.T) { - dH := &DispatcherHost{ - Tenant: "cgrates.org", - RemoteHost: config.NewDfltRemoteHost(), - } - - var args int - var reply *int - - experr := "dial tcp 127.0.0.1:2012: connect: connection refused" - err := dH.Call("method", args, reply) - - if err == nil || err.Error() != experr { - t.Errorf("\nexpected: <%+v>, \nreceived: <%+v>", experr, err) - } -} diff --git a/engine/routes.go b/engine/routes.go index 52077702f..5e26a4966 100644 --- a/engine/routes.go +++ b/engine/routes.go @@ -583,15 +583,12 @@ func (rpS *RouteService) V1GetRoutes(args *ArgsGetRoutes, reply *SortedRoutesLis args.APIOpts = make(map[string]interface{}) } args.APIOpts[utils.Subsys] = utils.MetaRoutes - attrArgs := &AttrArgsProcessEvent{ - CGREvent: args.CGREvent, - } - if attrArgs.CGREvent.APIOpts[utils.OptsContext] == utils.EmptyString { - attrArgs.CGREvent.APIOpts[utils.OptsContext] = utils.MetaRoutes + if args.CGREvent.APIOpts[utils.OptsContext] == utils.EmptyString { + args.CGREvent.APIOpts[utils.OptsContext] = utils.MetaRoutes } var rplyEv AttrSProcessEventReply if err := rpS.connMgr.Call(rpS.cgrcfg.RouteSCfg().AttributeSConns, nil, - utils.AttributeSv1ProcessEvent, attrArgs, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { + utils.AttributeSv1ProcessEvent, args.CGREvent, &rplyEv); err == nil && len(rplyEv.AlteredFields) != 0 { args.CGREvent = rplyEv.CGREvent args.APIOpts = rplyEv.APIOpts } else if err.Error() != utils.ErrNotFound.Error() { diff --git a/engine/z_attributes_test.go b/engine/z_attributes_test.go index b7c0be88e..3a3dfb720 100644 --- a/engine/z_attributes_test.go +++ b/engine/z_attributes_test.go @@ -31,56 +31,48 @@ var ( expTimeAttributes = time.Now().Add(20 * time.Minute) attrS *AttributeService dmAtr *DataManager - attrEvs = []*AttrArgsProcessEvent{ - { - CGREvent: &utils.CGREvent{ //matching AttributeProfile1 - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Attribute": "AttributeProfile1", - utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), - "UsageInterval": "1s", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + attrEvs = []*utils.CGREvent{ + { //matching AttributeProfile1 + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Attribute": "AttributeProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, }, - { - CGREvent: &utils.CGREvent{ //matching AttributeProfile2 - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Attribute": "AttributeProfile2", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + { //matching AttributeProfile2 + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Attribute": "AttributeProfile2", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, }, - { - CGREvent: &utils.CGREvent{ //matching AttributeProfilePrefix - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Attribute": "AttributeProfilePrefix", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + { //matching AttributeProfilePrefix + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Attribute": "AttributeProfilePrefix", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, }, - { - CGREvent: &utils.CGREvent{ //matching AttributeProfilePrefix - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "DistinctMatch": 20, - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + { //matching AttributeProfilePrefix + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "DistinctMatch": 20, + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, }, } @@ -253,7 +245,7 @@ func TestAttributeProfileForEvent(t *testing.T) { } atrp, err := attrS.attributeProfileForEvent(attrEvs[0].Tenant, context, attrIDs, attrEvs[0].Time, utils.MapStorage{ - utils.MetaReq: attrEvs[0].CGREvent.Event, + utils.MetaReq: attrEvs[0].Event, utils.MetaOpts: attrEvs[0].APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -271,7 +263,7 @@ func TestAttributeProfileForEvent(t *testing.T) { } atrp, err = attrS.attributeProfileForEvent(attrEvs[1].Tenant, context, attrIDs, attrEvs[1].Time, utils.MapStorage{ - utils.MetaReq: attrEvs[1].CGREvent.Event, + utils.MetaReq: attrEvs[1].Event, utils.MetaOpts: attrEvs[1].APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -289,7 +281,7 @@ func TestAttributeProfileForEvent(t *testing.T) { } atrp, err = attrS.attributeProfileForEvent(attrEvs[2].Tenant, context, attrIDs, attrEvs[2].Time, utils.MapStorage{ - utils.MetaReq: attrEvs[2].CGREvent.Event, + utils.MetaReq: attrEvs[2].Event, utils.MetaOpts: attrEvs[2].APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -304,14 +296,14 @@ func TestAttributeProfileForEvent(t *testing.T) { } func TestAttributeProcessEvent(t *testing.T) { - attrEvs[0].CGREvent.Event["Account"] = "1010" //Field added in event after process + attrEvs[0].Event["Account"] = "1010" //Field added in event after process eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:AttributeProfile1"}, AlteredFields: []string{utils.MetaReq + utils.NestingSep + "Account"}, - CGREvent: attrEvs[0].CGREvent, + CGREvent: attrEvs[0], } eNM := utils.MapStorage{ - utils.MetaReq: attrEvs[0].CGREvent.Event, + utils.MetaReq: attrEvs[0].Event, utils.MetaOpts: attrEvs[0].APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -327,9 +319,9 @@ func TestAttributeProcessEvent(t *testing.T) { } func TestAttributeProcessEventWithNotFound(t *testing.T) { - attrEvs[3].CGREvent.Event["Account"] = "1010" //Field added in event after process + attrEvs[3].Event["Account"] = "1010" //Field added in event after process eNM := utils.MapStorage{ - utils.MetaReq: attrEvs[3].CGREvent.Event, + utils.MetaReq: attrEvs[3].Event, utils.MetaOpts: attrEvs[3].APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -342,15 +334,15 @@ func TestAttributeProcessEventWithNotFound(t *testing.T) { } func TestAttributeProcessEventWithIDs(t *testing.T) { - attrEvs[3].CGREvent.Event["Account"] = "1010" //Field added in event after process - attrEvs[3].CGREvent.APIOpts[utils.OptsAttributesProfileIDs] = []string{"AttributeIDMatch"} + attrEvs[3].Event["Account"] = "1010" //Field added in event after process + attrEvs[3].APIOpts[utils.OptsAttributesProfileIDs] = []string{"AttributeIDMatch"} eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:AttributeIDMatch"}, AlteredFields: []string{utils.MetaReq + utils.NestingSep + "Account"}, - CGREvent: attrEvs[3].CGREvent, + CGREvent: attrEvs[3], } eNM := utils.MapStorage{ - utils.MetaReq: attrEvs[3].CGREvent.Event, + utils.MetaReq: attrEvs[3].Event, utils.MetaOpts: attrEvs[3].APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -578,17 +570,15 @@ func TestAttributeProcessWithMultipleRuns1(t *testing.T) { if err = dmAtr.SetAttributeProfile(attrPrf3, true); err != nil { t.Errorf("Error: %+v", err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -693,17 +683,15 @@ func TestAttributeProcessWithMultipleRuns2(t *testing.T) { if err = dmAtr.SetAttributeProfile(attrPrf3, true); err != nil { t.Errorf("Error: %+v", err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -804,17 +792,15 @@ func TestAttributeProcessWithMultipleRuns3(t *testing.T) { if err = dmAtr.SetAttributeProfile(attrPrf3, true); err != nil { t.Errorf("Error: %+v", err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -896,17 +882,15 @@ func TestAttributeProcessWithMultipleRuns4(t *testing.T) { if err = dmAtr.SetAttributeProfile(attrPrf2, true); err != nil { t.Errorf("Error: %+v", err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1010,17 +994,15 @@ func TestAttributeMultipleProcessWithBlocker(t *testing.T) { if err = dmAtr.SetAttributeProfile(attrPrf3, true); err != nil { t.Errorf("Error: %+v", err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1123,17 +1105,15 @@ func TestAttributeMultipleProcessWithBlocker2(t *testing.T) { if err = dmAtr.SetAttributeProfile(attrPrf3, true); err != nil { t.Errorf("Error: %+v", err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1195,17 +1175,15 @@ func TestAttributeProcessValue(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1276,17 +1254,15 @@ func TestAttributeAttributeFilterIDs(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "PassField": "Test", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "PassField": "Test", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1351,17 +1327,15 @@ func TestAttributeProcessEventConstant(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1429,18 +1403,16 @@ func TestAttributeProcessEventVariable(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - "TheField": "TheVal", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + "TheField": "TheVal", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1514,18 +1486,16 @@ func TestAttributeProcessEventComposed(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - "TheField": "TheVal", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + "TheField": "TheVal", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1589,19 +1559,17 @@ func TestAttributeProcessEventSum(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - "TheField": "TheVal", - "NumField": "20", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + "TheField": "TheVal", + "NumField": "20", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1666,20 +1634,18 @@ func TestAttributeProcessEventUsageDifference(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - "TheField": "TheVal", - "UnixTimeStamp": "1554364297", - "UnixTimeStamp2": "1554364287", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + "TheField": "TheVal", + "UnixTimeStamp": "1554364297", + "UnixTimeStamp2": "1554364287", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1745,20 +1711,18 @@ func TestAttributeProcessEventValueExponent(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - "TheField": "TheVal", - "Multiplier": "2", - "Pow": "3", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + "TheField": "TheVal", + "Multiplier": "2", + "Pow": "3", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -1829,17 +1793,15 @@ func BenchmarkAttributeProcessEventConstant(b *testing.B) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { b.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } var reply AttrSProcessEventReply @@ -1890,17 +1852,15 @@ func BenchmarkAttributeProcessEventVariable(b *testing.B) { if err := dmAtr.SetAttributeProfile(attrPrf1, true); err != nil { b.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Field1": "Value1", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Field1": "Value1", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } var reply AttrSProcessEventReply @@ -1966,21 +1926,19 @@ func TestProcessAttributeConstant(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_CONSTANT - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeConstant", - Event: map[string]interface{}{ - "Field1": "Val1", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_CONSTANT + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeConstant", + Event: map[string]interface{}{ + "Field1": "Val1", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -1990,11 +1948,11 @@ func TestProcessAttributeConstant(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - ev.CGREvent.Event["Field2"] = "Val2" + ev.Event["Field2"] = "Val2" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_CONSTANT"}, AlteredFields: []string{utils.MetaReq + utils.NestingSep + "Field2"}, - CGREvent: ev.CGREvent, + CGREvent: ev, } if !reflect.DeepEqual(eRply, rcv) { t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eRply), utils.ToJSON(rcv)) @@ -2026,22 +1984,20 @@ func TestProcessAttributeVariable(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_VARIABLE - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeVariable", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "Val2", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_VARIABLE + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeVariable", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "Val2", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2051,7 +2007,7 @@ func TestProcessAttributeVariable(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "Val2" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_VARIABLE"}, @@ -2093,23 +2049,21 @@ func TestProcessAttributeComposed(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_COMPOSED - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeComposed", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "Val2", - "RandomField2": "Concatenated", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_COMPOSED + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeComposed", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "Val2", + "RandomField2": "Concatenated", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2119,7 +2073,7 @@ func TestProcessAttributeComposed(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "Val2Concatenated" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_COMPOSED"}, @@ -2156,23 +2110,21 @@ func TestProcessAttributeUsageDifference(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_USAGE_DIFF - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeUsageDifference", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1514808000", - "RandomField2": "1514804400", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_USAGE_DIFF + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeUsageDifference", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1514808000", + "RandomField2": "1514804400", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2182,7 +2134,7 @@ func TestProcessAttributeUsageDifference(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "1h0m0s" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_USAGE_DIFF"}, @@ -2219,23 +2171,21 @@ func TestProcessAttributeSum(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_SUM - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeSum", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - "RandomField2": "5", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_SUM + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeSum", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + "RandomField2": "5", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2245,7 +2195,7 @@ func TestProcessAttributeSum(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "16" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_SUM"}, @@ -2282,23 +2232,21 @@ func TestProcessAttributeDiff(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_DIFF - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeDiff", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - "RandomField2": "5", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_DIFF + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeDiff", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + "RandomField2": "5", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2308,7 +2256,7 @@ func TestProcessAttributeDiff(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "39" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_DIFF"}, @@ -2345,23 +2293,21 @@ func TestProcessAttributeMultiply(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_MULTIPLY - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeMultiply", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - "RandomField2": "5", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_MULTIPLY + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeMultiply", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + "RandomField2": "5", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2371,7 +2317,7 @@ func TestProcessAttributeMultiply(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "2750" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_MULTIPLY"}, @@ -2408,23 +2354,21 @@ func TestProcessAttributeDivide(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_DIVIDE - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeDivide", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - "RandomField2": "5", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_DIVIDE + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeDivide", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + "RandomField2": "5", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2434,7 +2378,7 @@ func TestProcessAttributeDivide(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "2.75" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_DIVIDE"}, @@ -2471,23 +2415,21 @@ func TestProcessAttributeValueExponent(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_VAL_EXP - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeValueExponent", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - "RandomField2": "5", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_VAL_EXP + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeValueExponent", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + "RandomField2": "5", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2497,7 +2439,7 @@ func TestProcessAttributeValueExponent(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "50000" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_VAL_EXP"}, @@ -2534,23 +2476,21 @@ func TestProcessAttributeUnixTimeStamp(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_UNIX_TIMESTAMP - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeUnixTimeStamp", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - "RandomField2": "2013-12-30T15:00:01Z", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_UNIX_TIMESTAMP + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeUnixTimeStamp", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + "RandomField2": "2013-12-30T15:00:01Z", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2560,7 +2500,7 @@ func TestProcessAttributeUnixTimeStamp(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "1388415601" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_UNIX_TIMESTAMP"}, @@ -2597,22 +2537,20 @@ func TestProcessAttributePrefix(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_VAL_EXP - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeValueExponent", - Event: map[string]interface{}{ - "ATTR": "ATTR_PREFIX", - "Field2": "Val2", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_VAL_EXP + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeValueExponent", + Event: map[string]interface{}{ + "ATTR": "ATTR_PREFIX", + "Field2": "Val2", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2622,7 +2560,7 @@ func TestProcessAttributePrefix(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "abc_Val2" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_PREFIX"}, @@ -2659,22 +2597,20 @@ func TestProcessAttributeSuffix(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_VAL_EXP - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeValueExponent", - Event: map[string]interface{}{ - "ATTR": "ATTR_SUFFIX", - "Field2": "Val2", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_VAL_EXP + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeValueExponent", + Event: map[string]interface{}{ + "ATTR": "ATTR_SUFFIX", + "Field2": "Val2", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eNM := utils.MapStorage{ - utils.MetaReq: ev.CGREvent.Event, + utils.MetaReq: ev.Event, utils.MetaOpts: ev.APIOpts, utils.MetaVars: utils.MapStorage{ utils.OptsAttributesProcessRuns: 0, @@ -2684,7 +2620,7 @@ func TestProcessAttributeSuffix(t *testing.T) { if err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "Val2_abc" eRply := &AttrSProcessEventReply{ MatchedProfiles: []string{"cgrates.org:ATTR_SUFFIX"}, @@ -2737,17 +2673,15 @@ func TestAttributeIndexSelectsFalse(t *testing.T) { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "Account": "1007", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 1, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "Account": "1007", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 1, + utils.OptsContext: utils.MetaSessionS, }, } @@ -2800,26 +2734,24 @@ func TestProcessAttributeWithSameWeight(t *testing.T) { if err := dmAtr.SetAttributeProfile(attrPrf2, true); err != nil { t.Error(err) } - ev := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ //matching ATTR_UNIX_TIMESTAMP - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: "TestProcessAttributeUnixTimeStamp", - Event: map[string]interface{}{ - "Field1": "Val1", - "RandomField": "1", - utils.Weight: "20.0", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ //matching ATTR_UNIX_TIMESTAMP + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: "TestProcessAttributeUnixTimeStamp", + Event: map[string]interface{}{ + "Field1": "Val1", + "RandomField": "1", + utils.Weight: "20.0", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, + utils.OptsContext: utils.MetaSessionS, }, } var rcv AttrSProcessEventReply if err := attrS.V1ProcessEvent(ev, &rcv); err != nil { t.Errorf("Error: %+v", err) } - clnEv := ev.CGREvent.Clone() + clnEv := ev.Clone() clnEv.Event["Field2"] = "1" clnEv.Event["Field3"] = "1" eRply := AttrSProcessEventReply{ @@ -2887,17 +2819,15 @@ func TestAttributeMultipleProcessWithFiltersExists(t *testing.T) { if _, err := dmAtr.GetAttributeProfile(attrPrf2Exists.Tenant, attrPrf2Exists.ID, true, false, utils.NonTransactional); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -2986,17 +2916,15 @@ func TestAttributeMultipleProcessWithFiltersNotEmpty(t *testing.T) { if _, err := dmAtr.GetAttributeProfile(attrPrf2NotEmpty.Tenant, attrPrf2NotEmpty.ID, true, false, utils.NonTransactional); err != nil { t.Error(err) } - attrArgs := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 4, - utils.OptsContext: utils.MetaSessionS, - }, + attrArgs := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 4, + utils.OptsContext: utils.MetaSessionS, }, } eRply := &AttrSProcessEventReply{ @@ -3058,13 +2986,11 @@ func TestAttributeMetaTenant(t *testing.T) { if _, err := dm.GetAttributeProfile(attr1.Tenant, attr1.ID, true, false, utils.NonTransactional); err != nil { t.Error(err) } - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, - Event: map[string]interface{}{}, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + args := &utils.CGREvent{ + Tenant: config.CgrConfig().GeneralCfg().DefaultTenant, + Event: map[string]interface{}{}, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eRply := AttrSProcessEventReply{ @@ -3159,16 +3085,14 @@ func TestAttributesPorcessEventMatchingProcessRuns(t *testing.T) { attr := NewAttributeService(dm, fltrS, cfg) - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Event: map[string]interface{}{ - "Account": "pc_test", - "CompanyName": "MY_company_will_be_changed", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProcessRuns: 2, - utils.OptsContext: utils.MetaSessionS, - }, + args := &utils.CGREvent{ + Event: map[string]interface{}{ + "Account": "pc_test", + "CompanyName": "MY_company_will_be_changed", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProcessRuns: 2, + utils.OptsContext: utils.MetaSessionS, }, } reply := &AttrSProcessEventReply{} @@ -3237,18 +3161,16 @@ func TestAttributeMultipleProfileRunns(t *testing.T) { if _, err := dm.GetAttributeProfile(attrPrf2Exists.Tenant, attrPrf2Exists.ID, true, false, utils.NonTransactional); err != nil { t.Error(err) } - args := &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: cfg.GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProfileRuns: 2, - utils.OptsAttributesProcessRuns: 40, - utils.OptsContext: utils.MetaSessionS, - }, + args := &utils.CGREvent{ + Tenant: cfg.GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProfileRuns: 2, + utils.OptsAttributesProcessRuns: 40, + utils.OptsContext: utils.MetaSessionS, }, } eRply := AttrSProcessEventReply{ @@ -3257,7 +3179,7 @@ func TestAttributeMultipleProfileRunns(t *testing.T) { utils.MetaReq + utils.NestingSep + "Field2"}, CGREvent: &utils.CGREvent{ Tenant: cfg.GeneralCfg().DefaultTenant, - ID: args.CGREvent.ID, + ID: args.ID, Event: map[string]interface{}{ "InitialField": "InitialValue", "Field1": "Value1", @@ -3279,18 +3201,16 @@ func TestAttributeMultipleProfileRunns(t *testing.T) { t.Errorf("Expecting %+v, received: %+v", utils.ToJSON(eRply), utils.ToJSON(reply)) } - args = &AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: cfg.GeneralCfg().DefaultTenant, - ID: utils.GenUUID(), - Event: map[string]interface{}{ - "InitialField": "InitialValue", - }, - APIOpts: map[string]interface{}{ - utils.OptsAttributesProfileRuns: 1, - utils.OptsAttributesProcessRuns: 40, - utils.OptsContext: utils.MetaSessionS, - }, + args = &utils.CGREvent{ + Tenant: cfg.GeneralCfg().DefaultTenant, + ID: utils.GenUUID(), + Event: map[string]interface{}{ + "InitialField": "InitialValue", + }, + APIOpts: map[string]interface{}{ + utils.OptsAttributesProfileRuns: 1, + utils.OptsAttributesProcessRuns: 40, + utils.OptsContext: utils.MetaSessionS, }, } eRply = AttrSProcessEventReply{ @@ -3299,7 +3219,7 @@ func TestAttributeMultipleProfileRunns(t *testing.T) { utils.MetaReq + utils.NestingSep + "Field2"}, CGREvent: &utils.CGREvent{ Tenant: cfg.GeneralCfg().DefaultTenant, - ID: args.CGREvent.ID, + ID: args.ID, Event: map[string]interface{}{ "InitialField": "InitialValue", "Field1": "Value1", diff --git a/general_tests/attributes_filters_index_it_test.go b/general_tests/attributes_filters_index_it_test.go index 351171d5f..24a85ceb6 100644 --- a/general_tests/attributes_filters_index_it_test.go +++ b/general_tests/attributes_filters_index_it_test.go @@ -161,15 +161,13 @@ func testAttributeSetProfile(t *testing.T) { t.Error("Unexpected reply returned", result) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - "Subject": "44", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + "Subject": "44", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } var rplyEv engine.AttrSProcessEventReply @@ -213,15 +211,13 @@ func testAttributeSetFltr2(t *testing.T) { } //same event for process - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - Event: map[string]interface{}{ - "Subject": "4444", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + Event: map[string]interface{}{ + "Subject": "4444", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } exp := engine.AttrSProcessEventReply{ diff --git a/general_tests/attributes_it_test.go b/general_tests/attributes_it_test.go index 0a9690969..102b71965 100644 --- a/general_tests/attributes_it_test.go +++ b/general_tests/attributes_it_test.go @@ -127,17 +127,15 @@ func testAttributeSLoadFromFolder(t *testing.T) { } func testAttributeSProcessEvent(t *testing.T) { - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEvent", - Event: map[string]interface{}{ - utils.EventName: "VariableTest", - utils.ToR: utils.MetaVoice, - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEvent", + Event: map[string]interface{}{ + utils.EventName: "VariableTest", + utils.ToR: utils.MetaVoice, + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } eRply := engine.AttrSProcessEventReply{ @@ -211,16 +209,14 @@ func testAttributeSProcessEventWithAccount(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithAccount", - Event: map[string]interface{}{ - "EventName": "AddAccountInfo", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithAccount", + Event: map[string]interface{}{ + "EventName": "AddAccountInfo", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -294,16 +290,14 @@ func testAttributeSProcessEventWithAccountFull(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithAccount2", - Event: map[string]interface{}{ - "EventName": "AddFullAccount", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithAccount2", + Event: map[string]interface{}{ + "EventName": "AddFullAccount", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -426,16 +420,14 @@ func testAttributeSProcessEventWithStat(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithStat", - Event: map[string]interface{}{ - "EventName": "AddStatEvent", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithStat", + Event: map[string]interface{}{ + "EventName": "AddStatEvent", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -509,16 +501,14 @@ func testAttributeSProcessEventWithStatFull(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithStat", - Event: map[string]interface{}{ - "EventName": "AddFullStats", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithStat", + Event: map[string]interface{}{ + "EventName": "AddFullStats", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -655,16 +645,14 @@ func testAttributeSProcessEventWithResource(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithResource", - Event: map[string]interface{}{ - "EventName": "AddResourceUsages", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithResource", + Event: map[string]interface{}{ + "EventName": "AddResourceUsages", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -738,16 +726,14 @@ func testAttributeSProcessEventWithResourceFull(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithResource2", - Event: map[string]interface{}{ - "EventName": "AddFullResource", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithResource2", + Event: map[string]interface{}{ + "EventName": "AddFullResource", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -831,17 +817,15 @@ func testAttributeSProcessEventWithLibPhoneNumber(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithLibPhoneNumber2", - Event: map[string]interface{}{ - "EventName": "AddDestinationCarrier", - "Destination": "+447779330921", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithLibPhoneNumber2", + Event: map[string]interface{}{ + "EventName": "AddDestinationCarrier", + "Destination": "+447779330921", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -934,17 +918,15 @@ func testAttributeSProcessEventWithLibPhoneNumberComposed(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithLibPhoneNumberComposed", - Event: map[string]interface{}{ - "EventName": "AddComposedInfo", - "Destination": "+447779330921", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithLibPhoneNumberComposed", + Event: map[string]interface{}{ + "EventName": "AddComposedInfo", + "Destination": "+447779330921", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } @@ -1019,17 +1001,15 @@ func testAttributeSProcessEventWithLibPhoneNumberFull(t *testing.T) { t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testAttributeSProcessEventWithLibPhoneNumber", - Event: map[string]interface{}{ - "EventName": "AddDestinationDetails", - "Destination": "+447779330921", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaSessionS, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testAttributeSProcessEventWithLibPhoneNumber", + Event: map[string]interface{}{ + "EventName": "AddDestinationDetails", + "Destination": "+447779330921", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaSessionS, }, } diff --git a/general_tests/cacherpl_filter_update_it_test.go b/general_tests/cacherpl_filter_update_it_test.go index bcea53ee0..986568b0e 100644 --- a/general_tests/cacherpl_filter_update_it_test.go +++ b/general_tests/cacherpl_filter_update_it_test.go @@ -223,10 +223,6 @@ func testFilterUpdateSetAttrProfileE1(t *testing.T) { } func testFilterUpdateGetAttrProfileForEventEv1E1(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev1, - } - eAttrPrf := &engine.AttributeProfile{ Tenant: "cgrates.org", FilterIDs: []string{"FLTR_ID"}, @@ -245,7 +241,7 @@ func testFilterUpdateGetAttrProfileForEventEv1E1(t *testing.T) { eAttrPrf.Compile() var attrReply *engine.AttributeProfile if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err != nil { + ev1, &attrReply); err != nil { t.Fatal(err) } attrReply.Compile() // Populate private variables in RSRParsers @@ -256,10 +252,6 @@ func testFilterUpdateGetAttrProfileForEventEv1E1(t *testing.T) { } func testFilterUpdateGetAttrProfileForEventEv1E2(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev1, - } - eAttrPrf := &engine.AttributeProfile{ Tenant: "cgrates.org", FilterIDs: []string{"FLTR_ID"}, @@ -278,7 +270,7 @@ func testFilterUpdateGetAttrProfileForEventEv1E2(t *testing.T) { eAttrPrf.Compile() var attrReply *engine.AttributeProfile if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err != nil { + ev1, &attrReply); err != nil { t.Fatal(err) } attrReply.Compile() // Populate private variables in RSRParsers @@ -289,10 +281,6 @@ func testFilterUpdateGetAttrProfileForEventEv1E2(t *testing.T) { } func testFilterUpdateGetAttrProfileForEventEv2E1(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev2, - } - eAttrPrf := &engine.AttributeProfile{ Tenant: "cgrates.org", FilterIDs: []string{"FLTR_ID"}, @@ -311,7 +299,7 @@ func testFilterUpdateGetAttrProfileForEventEv2E1(t *testing.T) { eAttrPrf.Compile() var attrReply *engine.AttributeProfile if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err != nil { + ev2, &attrReply); err != nil { t.Fatal(err) } attrReply.Compile() // Populate private variables in RSRParsers @@ -322,10 +310,6 @@ func testFilterUpdateGetAttrProfileForEventEv2E1(t *testing.T) { } func testFilterUpdateGetAttrProfileForEventEv2E2(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev2, - } - eAttrPrf := &engine.AttributeProfile{ Tenant: "cgrates.org", FilterIDs: []string{"FLTR_ID"}, @@ -344,7 +328,7 @@ func testFilterUpdateGetAttrProfileForEventEv2E2(t *testing.T) { eAttrPrf.Compile() var attrReply *engine.AttributeProfile if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err != nil { + ev2, &attrReply); err != nil { t.Fatal(err) } attrReply.Compile() // Populate private variables in RSRParsers @@ -389,49 +373,33 @@ func testFilterUpdateSetFilterAfterAttrE1(t *testing.T) { } func testFilterUpdateGetAttrProfileForEventEv1E1NotMatching(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev1, - } - var attrReply *engine.AttributeProfile if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { + ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err) } } func testFilterUpdateGetAttrProfileForEventEv1E2NotMatching(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev1, - } - var attrReply *engine.AttributeProfile if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { + ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err) } } func testFilterUpdateGetAttrProfileForEventEv2E1NotMatching(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev2, - } - var attrReply *engine.AttributeProfile if err := fltrUpdateRPC1.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { + ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err) } } func testFilterUpdateGetAttrProfileForEventEv2E2NotMatching(t *testing.T) { - attrProcessEv := &engine.AttrArgsProcessEvent{ - CGREvent: ev2, - } - var attrReply *engine.AttributeProfile if err := fltrUpdateRPC2.Call(utils.AttributeSv1GetAttributeForEvent, - attrProcessEv, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { + ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() { t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err) } } diff --git a/general_tests/filters_it_test.go b/general_tests/filters_it_test.go index 395ca33f9..f0f97112d 100644 --- a/general_tests/filters_it_test.go +++ b/general_tests/filters_it_test.go @@ -1052,18 +1052,16 @@ func testV1FltrAttributesPrefix(t *testing.T) { APIOpts: map[string]interface{}{}, }, } - cgrEv := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.new", - ID: "event1", - Event: map[string]interface{}{ - "CustomField": "+2007", - "CustomField2": "+2007", - utils.Destination: "+1207", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: "prefix", - }, + cgrEv := &utils.CGREvent{ + Tenant: "cgrates.new", + ID: "event1", + Event: map[string]interface{}{ + "CustomField": "+2007", + "CustomField2": "+2007", + utils.Destination: "+1207", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: "prefix", }, } var result2 *engine.AttrSProcessEventReply @@ -1136,17 +1134,15 @@ func testV1FltrPopulateTimings(t *testing.T) { t.Error("Unexpected reply returned", result) } - ev := &engine.AttrArgsProcessEvent{ - CGREvent: &utils.CGREvent{ - Tenant: "cgrates.org", - ID: "testV1FltrPopulateTimings", - Event: map[string]interface{}{ - utils.AnswerTime: "2021-04-29T08:35:00Z", - }, - APIOpts: map[string]interface{}{ - utils.OptsContext: utils.MetaAny, - utils.OptsAttributesProfileIDs: []string{"FltrTest"}, - }, + ev := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testV1FltrPopulateTimings", + Event: map[string]interface{}{ + utils.AnswerTime: "2021-04-29T08:35:00Z", + }, + APIOpts: map[string]interface{}{ + utils.OptsContext: utils.MetaAny, + utils.OptsAttributesProfileIDs: []string{"FltrTest"}, }, } eRply := &engine.AttrSProcessEventReply{ @@ -1175,7 +1171,7 @@ func testV1FltrPopulateTimings(t *testing.T) { } } - ev.CGREvent.Event[utils.AnswerTime] = "2021-04-29T13:35:00Z" + ev.Event[utils.AnswerTime] = "2021-04-29T13:35:00Z" var rplyEv2 engine.AttrSProcessEventReply if err := fltrRpc.Call(utils.AttributeSv1ProcessEvent, diff --git a/sessions/sessions.go b/sessions/sessions.go index 2c94af73d..937993360 100644 --- a/sessions/sessions.go +++ b/sessions/sessions.go @@ -3875,16 +3875,13 @@ func (sS *SessionS) processAttributes(cgrEv *utils.CGREvent, attrIDs []string, cgrEv.APIOpts = make(engine.MapEvent) } cgrEv.APIOpts[utils.Subsys] = utils.MetaSessionS - attrArgs := &engine.AttrArgsProcessEvent{ - CGREvent: cgrEv, - } - attrArgs.CGREvent.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs - if attrArgs.CGREvent.APIOpts[utils.OptsContext] == utils.EmptyString { - attrArgs.CGREvent.APIOpts[utils.OptsContext] = utils.MetaSessionS + cgrEv.APIOpts[utils.OptsAttributesProfileIDs] = attrIDs + if cgrEv.APIOpts[utils.OptsContext] == utils.EmptyString { + cgrEv.APIOpts[utils.OptsContext] = utils.MetaSessionS } cgrEv.SetCloneable(clnb) err = sS.connMgr.Call(sS.cgrCfg.SessionSCfg().AttrSConns, nil, utils.AttributeSv1ProcessEvent, - attrArgs, &rplyEv) + cgrEv, &rplyEv) return } diff --git a/sessions/sessions_test.go b/sessions/sessions_test.go index a1e9a57e3..40d05f85c 100644 --- a/sessions/sessions_test.go +++ b/sessions/sessions_test.go @@ -2694,7 +2694,7 @@ func TestBiRPCv1AuthorizeEventNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } @@ -2764,7 +2764,7 @@ func TestBiRPCv1AuthorizeEventWithDigestNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } @@ -2832,7 +2832,7 @@ func TestBiRPCv1InitiateSessionNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } @@ -2900,7 +2900,7 @@ func TestBiRPCv1InitiateSessionWithDigestNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } @@ -2965,7 +2965,7 @@ func TestBiRPCv1UpdateSessionNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } @@ -3081,7 +3081,7 @@ func TestBiRPCv1ProcessMessageNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } @@ -3149,7 +3149,7 @@ func TestBiRPCv1ProcessEventNoTenant(t *testing.T) { if !cancast { return fmt.Errorf("can't cast") } - newArgs, cancast := args.(*engine.AttrArgsProcessEvent) + newArgs, cancast := args.(*utils.CGREvent) if !cancast { return fmt.Errorf("can't cast") } diff --git a/sessions/sessionscover_test.go b/sessions/sessionscover_test.go index 2caeea888..a8309bcf4 100644 --- a/sessions/sessionscover_test.go +++ b/sessions/sessionscover_test.go @@ -2756,7 +2756,7 @@ func TestBiRPCv1InitiateSession1(t *testing.T) { return nil }, utils.AttributeSv1ProcessEvent: func(args interface{}, reply interface{}) error { - if attrIDs, err := utils.IfaceAsSliceString(args.(*engine.AttrArgsProcessEvent).APIOpts[utils.OptsAttributesProfileIDs]); err == nil && + if attrIDs, err := utils.IfaceAsSliceString(args.(*utils.CGREvent).APIOpts[utils.OptsAttributesProfileIDs]); err == nil && len(attrIDs) != 0 { return utils.ErrNotImplemented } @@ -3104,7 +3104,7 @@ func TestBiRPCv1UpdateSession1(t *testing.T) { clnt := &testMockClients{ calls: map[string]func(args interface{}, reply interface{}) error{ utils.AttributeSv1ProcessEvent: func(args interface{}, reply interface{}) error { - if attrIDs, err := utils.IfaceAsSliceString(args.(*engine.AttrArgsProcessEvent).APIOpts[utils.OptsAttributesProfileIDs]); err == nil && + if attrIDs, err := utils.IfaceAsSliceString(args.(*utils.CGREvent).APIOpts[utils.OptsAttributesProfileIDs]); err == nil && len(attrIDs) == 1 { return utils.ErrNotImplemented } @@ -3509,7 +3509,7 @@ func TestBiRPCv1ProcessMessage1(t *testing.T) { clnt := &testMockClients{ calls: map[string]func(args interface{}, reply interface{}) error{ utils.AttributeSv1ProcessEvent: func(args interface{}, reply interface{}) error { - if args.(*engine.AttrArgsProcessEvent).ID == "test_id" { + if args.(*utils.CGREvent).ID == "test_id" { return nil } return utils.ErrNotImplemented @@ -3715,7 +3715,7 @@ func TestBiRPCv1ProcessEvent(t *testing.T) { }, }, } - if args.(*engine.AttrArgsProcessEvent).ID == "CHANGED_ID" { + if args.(*utils.CGREvent).ID == "CHANGED_ID" { *reply.(*engine.AttrSProcessEventReply) = attrs return nil }